O kernel Linux está inchado... Mas, calma, não é bem assim!

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. 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.

[ Hits: 19.711 ]

Por: Perfil removido em 14/03/2010


A notícia e os números



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).

    Próxima página

Páginas do artigo
   1. A notícia e os números
   2. Fatos e conceitos
   3. Conclusão
Outros artigos deste autor

Porque abandonar o Slackware e usar o Ubuntu

VPN - usando SSH

Zenwalk - Uma distro e tanto

Novidades do Kernel 2.6.35

Fontes com filtros LCD no Arch Linux

Leitura recomendada

Slackware com kernel 2.6.10 - passo a passo

Desmistificando a instalação do Dazuko

Compilando o kernel no Conectiva Linux 10

Compilar e habilitar os módulos ip_table e iptable_nat no kernel 2.6.26 no Debian Linux

Kernel-BALA

  
Comentários
[1] Comentário enviado por removido em 14/03/2010 - 20:15h

Muito legal seu artigo, belas verdades que, as pessoas não ligam nem dão o mínimo de valor. O maior concorrente do Windows é ele mesmo, em sua versão pirata como você mesmo disse, enquanto o Windows existir irão existir empresas como:McAffe, Symantec, Kaspersky, BitDefender, etc. Pois elas tentam cobrir os buracos deixados por esse sistema operacional cuja api (Win32) possui chamadas de sistemas desde o Windows 3.11 (apesar deles terem dado uma "enxugada nisso na versão 7).

Pois isso prefiro o Linux, sem problemas com virus, segurança e é livre!!!

[2] Comentário enviado por kabalido em 15/03/2010 - 09:05h

Bacana seu artigo cara! Gostei.

Linux sempre será o que é. O melhor dos SO's.
Linux user forever :-)

VivaoLinux, VivaoLinux,VivaoLinux...ops! chega!

Abraços.

[3] Comentário enviado por jairus em 15/03/2010 - 09:38h

Parabéns pelo artigo !!!


Jairus Lopes

[4] Comentário enviado por JoseRenan em 15/03/2010 - 15:58h

muito bom :D

[5] Comentário enviado por albfneto em 15/03/2010 - 16:09h

parabéns pelo artigo... Não sei dizer se houve perda de performance, as máquinas eram menores, elas não tinham "boa pertformance"..
aumentando o hardware, claro que vai aumentar o kernel. de que adiantaria manter o kernel pequeno, e sem wireless, sem bleutooth etc...
depois, sempre se pode recompilar tirando o suporte do hardware que não se tem no micro...
o kernel geral aumenta, lógico... pq o linux precisa fazer o micro funcionar,e não é só pros linusers que vão recompilar o kernel...., pq muitos vão só usar linux, não vão fuçar nele...
tudo aumenta, em linux ou em windows, cada versão nova é mais pesada, é normal!
o novo kernel linux deverá trazer suporte aos monitores touch screen, como o windows seven, se já não estiver com esse suporte pronto....

[6] Comentário enviado por jgadi em 15/03/2010 - 16:11h

Parabéns pelo artigo.

É fato que o kernel Linux pode ser recompilado (o do Windows não) e ajustados as necessidades.

[7] Comentário enviado por mondra em 16/03/2010 - 09:04h

Parabéns Pedro,

Excelente matéria e a verdade está aí para quem quiser.
Adorei principalmente o seu final onde diz que "mesmo que isso custe deixar pra trás tudo que sabemos pra aprender do novo do zero."

Devíamos deixar sempre nosso orgulho de lado e sabermos que evolução pode significar "recomeçar" e não apenas "continuar".

Abraços e paz a todos

[8] Comentário enviado por removido em 16/03/2010 - 09:12h

Obrigado por todos os comentários, e em relação ao último do Edson, taí mais uma boa frase que eu vou postar no Twitter: "Evolução pode significar 'recomeçar' e não apenas 'continuar'".

[9] Comentário enviado por joaomc em 16/03/2010 - 14:51h

Permita-me discordar de uma parte do texto: não acho que o kernel do Windows esteja mal das pernas. Na verdade, ele está bastante sólido.

[10] Comentário enviado por removido em 16/03/2010 - 15:12h

Bem, em relação ao afirmar que o kernel Windows está bastante sólido, como dito acima pelo João Marcus, depende do que pode ser considerado 'sólido'. Eu não citei minhas fontes de maneira direta, porém elas podem ser acessadas no artigo original que escrevi no meu blog.

Mas a afirmação que fiz de que o kernel Windows anda mal das pernas pode ser verificada numa matéria da Computerworld/EUA, publicada aqui no Brasil pelo "IDG Now!" em 11 de abril de 2008 sob o título "Windows está entrando em colapso, alertam analistas do Gartner".

O link para vê-la:

http://idgnow.uol.com.br/computacao_pessoal/2008/04/11/windows-esta-entrando-em-colapso-alertam-anal...

[11] Comentário enviado por removido em 17/03/2010 - 10:44h

Bem bacana esse artigo
Parabens

Viva o Linux :D

[12] Comentário enviado por stremer em 20/03/2010 - 03:25h

o kernel do linux esta inchado em tamanho... mas por ele ser modular, para uso definitivamente não esta.
O kernel do windows esta condenado por não ser modular e ter diversas limitaçoes, não entrando nestes detalhes agora, porém ele hoje é bem estavel e atende bem no seu mercado desktop e pequenos servidores... ja o linux mesmo tendo 20% de codigo de maquina, há muitas arquiteturas disponiveis...
Outra vantagem que o inchasso é sinal de muito suporte a hardware ou seja, um sistema bastante usavel e ainda por cima modular.

[13] Comentário enviado por removido em 29/03/2010 - 01:50h

Tudo isso é muito interessante!
Esclareçam uma dúvida então, quer dizer que distros mais modernas ou quanto mais modernas ou atualizadas ficam contribuem em números a mais de linhas no Kernel, não é mesmo?

OK! Atender cada vez mais a um mercado exigente. Desenvolvedores do software livre cada vez mais pressionados em equilibrar a equação eficiênciaXperiféricos=kernel enxuto. Lógico, do software proprietário também. Realmente, não é fácil!

Agora entendo os cabelos brancos do tio Bill! A "tela preta", os travamentos....

Se não fosse por profissionais como vocês, jamais conheceríamos (nós, usuários finais) a alma de um S.O.

Parabéns pelo artigo!

[14] Comentário enviado por removido em 29/03/2010 - 08:34h

em, as distros em si e sua evolução não são responsáveis pelo aumento do kernel, pois elas são implementadas sobre ele, não dentro dele. É como se fosse por exemplo o chassi e o motor de um carro: o Audi A3 e o VW Golf são feitos sobre praticamente o mesmo chassi e o motor tem algumas diferenças de capacidade e potência, mas a base é a mesma e sobre ela são implementados dois modelos diferentes.

O kernel é o chassi e o motor, as distros fazem a parte mais visível. O kernel cuida da parte 'técnica' da coisa, principalmente se relacionando com o hardware e mantendo a estrutura básica do sistema, enquanto as distros se relacionam com o usuário final, oferecendo-lhes um ambiente gráfico, um conjunto de programas, etc.

Mas as distros podem sim influênciar no kernel, como tudo na comunidade open source, as informações se propagam pro benefício de todos. Um exemplo mais direto é agora a febre do momento, o toch screen. As distros querem oferecer este recurso, mas isso depende de uma implementação no kernel pra dar suporte aos dispositivos, assim a alteração será adicionada a uma nova versão do kernel e repassada as distros quando elas a adotarem.

[15] Comentário enviado por removido em 29/03/2010 - 13:31h

Compreendo!

O win7 já dá suporte às telas touch screens, então isso pode até acelerar o colapso desse sistema? Estou certo?
Já o Linux não, como está baseado na modularidade que você supracitou, mais uma vez dará um show de performance quando implementar em seu kernel o suporte ao touch screen. Corrija-me se houve equívoco.

A um detalhe, periféricos modernos também têm um software instalado, lógico, software esse para o controle dos mesmos. Pergunto: não poderia haver nesses programas instalados um apoio, algo que contribuísse para facilitar a performance do kernel? Se isso é factível, não aumentaria ainda mais a performance do Linux? Veja, afinal todo kernel tem que se adaptar aos novos periféricos, logo os mesmos não deveriam também ser adaptados ao kernel? Desculpe-me Pedro, se estiver dizendo besteiras porque sei que estou, mas olha, acaba de chegar a São Paulo, a internet via rede elétrica, o kernel do Linux e suas distros estão preparados para isso?

Novas tecnologias, novos periféricos. Tudo isso contribui para a expansão do kernel. O que o kernel tem que reconhecer não é o software que controla o periférico?

A todos os participantes do artigo peço desculpas se desviei do tema.

Agradeço Pedro!





[16] Comentário enviado por removido em 29/03/2010 - 14:45h

Bem, meu conhecimente também não é tão avançado, é mesmo bem superficial e mais conceitual, eu mesmo nunca me aventurei a dissecar o kernel Linux, no muito foram algumas configurações e recompliações usando assistentes que minha distro oferece.

A adição de novos recursos pura e simplesmente não é um problema, afinal, isso faz parte da evolução. A diferença é como estas melhorias são implementadas, e isso, como no desenvolvimento de qualquer software (e até hardware), depende principalmente dos fatores tempo e planejamento.

Quando falo de inchar (ou numa visão otimista, crescer) não signifca que pra cada modelo ou marca de dispositivo o kernel precise ser alterado, pois o que o kernel faz é administrar o suporte a grupos de dispositivos separados por tipo, ele oferece um canal padrão de comunicação com eles, ou seja, um módulo é responsável por dispositivos de armazenamento removíveis (pen-drive, câmeras digitais, cartão de memória), e estes dispositivos também tem que trabalhar com esse padrão de comunicação. Eu não tenho gabarito técnico pra fazer uma afirmação sobre o baixo nível da coisa (linguagem de mãquina), mas citando um exemplo simples meu, quando eu plugo meu pen-drive, MP3 player ou celular no meu computador pra ele é como se fosse a mesma coisa pois ele reconhece o padrão de comunicação, os sinais que eles enviam, e assim posso fazer as minhas trocas de arquivos, etc.

Em relação a softwares pra 'aliviar' o trabalho do kernel não seria o caso, fugiria dos padrões. Tipo, o Linux usa um modelo de kernel monolítico (numa analogia podemos chamar de monobloco), no qual o próprio kernel conversa com o hardware - isso porque quando ele começou a ser escrito era a maneira que tinha de fazer, não é o ideal, mas não é um erro, pois o trabalho é dividido em múdulos. No Windows NT e Mac OSX (bem como outros sistemas da família BSD), o kernel é o híbrido, em que esse suporte a hardware é melhor distribuído e fica a cargo de servidores ligados ao kernel, assim as funções não ficam todas embutidas no mesmo lugar.

A questão é que no caso do Windows nem um conceito mais moderno deu jeito na coisa. Por ser fechado, os fabricantes muitas vezes não têm acesso aos recursos que o kernel Windows já tem, e muitas vezes são abrigados a fazer tudo do zero, bit a bit (quando existe um acordo deles com a MS o trabalho fica mais fácil, muita coisa já vem junto com o próprio sistema), assim, via de regra, é por isso que temos computadores com Windows cheios de arquivos e drivers distintos pesando no PC, muitas vezes precismos de drivers diferentes pra dispositivos que fazem a mesma coisa - seria muito melhor se eles adotassem um padrão. O Windows prega diversidade, mas que vantagem a nisso se ela custa recursos que poderiam ser aproveitados com coisas mais importantes se houvesse um padrão.

Eu hoje adotei uma postura, se não funciona com Linux, não compro - apesar de que hoje é difícil alguma coisa não funcionar, veja este exemplo no meu site [http://bit.ly/9qC1JL]. Talvez eu também esteja falando besteira, mas eu acho que é mais ou menos isso.

Em relação a internet via rede elétrica, a preocupação não se aplica, pois quem faz o 'trabalho sujo' é o modem, que entrega o sinal de rede pro computador no padrão do protocolo TCP. Talvez alguma adaptação seja necessária, mas seria superficial, não a nivel de kernel, seria a mesma coisa que a comparação entre banda-larga fica, dial-up, 3G ou bluetooth.

[17] Comentário enviado por removido em 29/03/2010 - 16:34h

Às vezes penso em desinstalar o Vista do meu HD (veio instalado). E às vezes penso ser isso um exagerado radicalismo. Nem o utilizo mais, como tenho muito espaço no HD, não me preocupo. Como meu equipamento ainda está na garantia, vou deixá-lo instalado, vai que acontece alguma coisa e o fabricante inventa histórias de que perdi a mesma, já viu né?!

Esclareceu e muito minhas dúvidas e ampliou a compreensão do artigo.

Estou vendo seu Blog, muito interessante. Tem muita informação.

Vi alguns vídeos do VOL Day. Num deles o Fábio diz que quem ensina também está aprendendo. É a mais pura verdade.


Meu caro, só tenho a lhe agradecer!!!




[18] Comentário enviado por removido em 29/03/2010 - 16:54h

Eu fico feliz pela repercussão. A gente não ganha nada financeiramente, mas o prazer de compartilhar as informçaões é meior do que o custo de cerca de R$ 150,00 por ano que a maioria dos blogueiros da comunidade tem pra manter o domínio e a hospedagem. E mesmo o Viva o Linux sendo um mega portal sei que tudo aqui é feito pelo prazer de contribuir uns com os outros, isso é quase um vício, so que é um vício bom.

Quanto a ser radical, tem dias que eu o sou e tem dias que sou mais moderado (na verdade como programador que sofre no dia-a-dia a gente acaba tendo nossos motivos pra ser radical quando descobrimos o mundo Linux). O meu notebook veio com Windows Vista Starter, depois eu troquei ele por uma versão do Vista Business (original) fornecido pela empresa em que eu trabalhava (que por sua vez participava dos programas de partner da MS).

Eu também fiquei um tempo com dual boot com Ubuntu e Vista (testei até o Seven RC), mas depois vi que o Windows não me fazia falta, até mesmo meu Age of Empires III (uma das poucas coisas da MS que eu gosto e até compro) que eu gostava de jogar eu pude roder no Linux com Wine [veja como consegui em http://bit.ly/cvpXUj]. Daí, como meu HD é modesto (120 GB), eu formtei geral e fiquei so com Linux (que mesmo com tudo o que eu preciso, e não é pouca coisa, minhas músicas e meus episódios do LOST, ainda tem 86 GB livres).


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts