Ver Feed RSS

Linux: Código e Desenvolvimento em um Mundo Livre

Linus Torvalds afirma: o Linux está 'inchado'

Avaliação: 4 votos, 4,75 média.
Linus Torvalds, o criador do Linux, fez um comentário interessante na LinuxCon nesta segunda-feira: "O Linux está inchado". Para os afoitos em achar que o Linux 'pegou' uma rota evolutiva sem saída, acalmem-se. Torvalds apenas informou que, devido ao sucesso, o Linux continua crescendo a medida que sua adoção aumenta. E que esse é o 'problema' do sucesso: tentar abraçar cada vez mais, um número maior de tarefas.


O interessante é que essa característica de 'inchaço' sempre foi utilizada, pela própria comunidade Linux, como adjetivo rotulante para o sistema operacional Windows da Microsoft. E Torvalds diz que esse mesmo crescimento no Linux, o torna "enorme e assustador".

Torvalds tem reclamado que as idéias iniciais dele, sobre um kernel hiper-eficiente, não se tornaram realidade. Mas o Linux está presente em quase tudo: desde data centers corporativos até mais da metade dos smartphones produzidos no mundo. Mesmo assim ele levanta uma questão: "Será que o Linux vai se tornar cada vez mais parecido com o Windows, a medida que for aumentando seu sucesso?".

Sabemos que é errado pensar no Linux (principalmente a nível de kernel) como algo monolítico. O Linux é modular. Mas será que ele é modular o suficiente para garantir seu crescimento de forma sustentável e sadia, no mundo atual?


Modularidade


Dizem que a fonte de todo o mau está na sua raiz. Então vamos ao kernel do problema: analisemos primeiro o quão modular o kernel Linux realmente é. E a primeira análise que podemos pensar em fazer é no hardware.

Analisando o Hardware

Como afirmado nos primeiros parágrafos desse texto, o Linux pode ser encontrado em praticamente todo o tipo de hardware, desde servidores em data centers corporativos, até diferentes tipos de smartphones de dezenas de fabricantes em todo o mundo. Mas o que conheço do kernel Linux, posso dizer isso não é modularidade, isso é pluralidade.

O kernel Linux é capaz de 'estar presente' em todo o tipo de dispositivo, mas não da forma modular como você pensa. Levando-se em conta que o kernel é todo o projeto relacionado ao mesmo (seu núcleo principal e todos os 'módulos' existentes), por que não é simplesmente fácil de se instalar 'um mesmo kernel customizado' em qualquer dispositivo? Um kernel para smartphone é altamente customizado (no sentido de customização manual e horas de programação à parte) para esse tipo de hardware. Não a toa vemos várias empresas de telefonia, investindo em seus Linux modificados para smartphones. Se você tentasse instalar o mesmo kernel de um smartphone em um servidor de produção localizado num data center, você não conseguiria algo funcionalmente viável. Para ser mais realista, esse mesmo kernel não funcionaria em um smartphone concorrente.

E onde está a modularidade do kernel, se você precisa perder meses de programação para 'criar' uma versão customizada do mesmo para funcionamento em um hardware altamente especializado? E até onde o projeto de modularização do kernel pode ir, para poder atender a todos os hardware sem esbarrar em problemas legais?


Acredito que o kernel Linux ainda precisa passar por muitas reconstruções (ou uma verdadeira reescrita do zero) para que ele possa ser um projeto verdadeiramente modular, e poder crescer e se desenvolver com o tempo, sempre atendendo as necessidades da evolução econômica e social da utilização dos inúmeros hardware 'presentes' e 'futuros'. Mas será que isso é o que Linus Torvalds desejava inicialmente para seu projeto?

Reescrita do projeto


O ideal seria ter um kernel Linux que gerenciasse de forma altamente modular e customizada, os diferentes tipos de suporte a drivers e hardware como um todo, a ponto de você poder escolher em sua configuração (apenas um kernel) para qual tipo de hardware/produto você quer usar o mesmo.

Atualmente você tem uma série de escolhas de configuração do kernel, mas elas envolvem funcionalidades gerais (um nível acima) e não funcionalidades aplicadas (um nível abaixo, especificando o tipo de hardware/produto). E essas mesmas escolhas são, em sua maioria, voltadas para atender uma gama limitada de produtos/hardware. Não acho que isso seja suficiente para chamar o kernel de modular, tendo em vista os diversos tipos de hardware existentes no mercado. Uma idéia: Por que não ter um kernel mais 'inteligente' que pudesse fazer uma 'varredura' no produto e escolher as configurações ideais para que todas as funcionalidades básicas do novo dispositivo pudessem funcionar? E isso utilizando apenas um kernel, e não precisando perder horas em escovação de bits (com direito a reprogramação de partes) para se atender ao novo produto?

Claro que isso esbarra em outros problemas maiores, que seria a 'padronização', não de hardware, mas de estrutura funcional dos componentes de hardware de um fabricante (e liberação desses mesmos specs para os desenvolvedores). O desenvolvimento do kernel Linux até poderia suprir essa necessidade mesmo sem a colaboração dos fabricantes. Mas haja tempo, pessoal, e horas de engenharia reversa a seguir...

Assim, podemos dizer que o kernel Linux, mesmo com seu 'núcleo' e seus 'módulos', não é um projeto modularizado. Eu diria até que o mesmo está se tornando um verdadeiro macrófago. Outro ponto que renderia um livro inteiro, é o problema de relacionamento, criação, reescrita e aceitação de código entre os integrantes da 'equipe' de desenvolvimento do kernel Linux. Vamos deixar isso para futuros posts.


Analisando o Software

Considerando que, para o mercado e para os usuários, o Linux não é mais somente o kernel, vamos falar também do software. E acredite se quiser, esse é um campo minado maior que o problema da modularização do kernel. Aqui há muito mais gente e programas (de todas as camadas), que no caso do hardware. Até onde o Linux se aproxima da Microsoft quando o chamamos de 'inchado'?

No começo...

No começo se criava funcionalidades 'semelhantes' e 'suportáveis'. Se queríamos participação em um mercado/mundo crescente em tecnologia, mas retraído em aceitação de inovações, precisaríamos desenvolver produtos com a mesma cara e mesma funcionalidade, que fossem compatíveis com os diferentes tipos de arquivos do concorrente. Mas tudo isso sem todos os problemas do mesmo, e que continuassem abertos e livres. Essa foi a primeira onda.

Com os projetos aumentando em número, funcionalidades e facilidades de uso, num mercado/mundo também crescente em novas e variadas tecnologias, o problema aumentou. Mediante a estagnação em novidades do concorrente, a comunidade Linux se viu obrigada a inovar e não ter mais a quem copiar. Essa foi a segunda onda.

Atualmente

Hoje em dia temos centenas de projetos em Software Livre e de Código Aberto (SL/CA), desde os poderosos ambientes de desktops, até aplicativos de escritório, som e imagem, passando por programas de gerenciamento de médio e baixo-níveis, linguagens de programação, etc. Nós realmente abraçamos o mundo com o SL/CA para Linux. Mas, por que não dominamos esse mercado ainda? O que estamos fazendo de errado?

Eu diria que 'parcialmente' a culpa é nossa. Claro que boa parte da culpa reside na resistência do usuário (corporativo ou não) ao novo. A querer re-aprender.

Nós, no mundo Linux, temos uma variedade enorme de softwares que fazem tudo. E temos milhares de softwares que fazem (ou se propõem a fazer) a mesma coisa. Vários editores de texto, vários reprodutores de áudio e/ou vídeo, e por ai vai. Todos esse projetos são bons e eu realmente sou a favor da possibilidade de escolha por parte do usuário. Mas acho que os projetos correlacionados esquecem que eles estão no mesmo lado da disputa - a disputa contra o software proprietário. E em vez de seguirem seus caminhos isolados e com a torcida (leia-se usuários) de cada um disputando quem é o melhor, acho que esses projetos deveriam ampliar sua integração com seus semelhantes.

O novo ambiente desktop KDE, versão 4.2<qtlend></qtlend>

Muitos podem até questionar que uma integração acabaria com a individualidade. Mas existem vários níveis de integração. Estou falando apenas do básico. Por exemplo, programas similares deveriam ser compatíveis com todos os formatos de arquivos e serviços que disponibilizam, além da possibilidade COMPLETA de interconversão de padrões de arquivos. E isso vale para todos os softwares, sejam eles, clientes de e-mail, editores de texto ou mesmo manipuladores de imagem, áudio e vídeo. A interconverção, claro, não se limitaria ao tipo de arquivo, mas também as bases de dados, ponto de grande importância em nosso atual mundo digital globalizado, onde a Internet e a Web 2.0 estão 'a disposição'.

Essa integração, sempre modularizada e padronizada, conquistaria para os projetos relacionados maior força e melhor poder de disputa com os programas proprietários equivalentes. Também apoio a participação oficial e explícita de desenvolvedores de projetos similares, entre seus 'iguais'. E o principal, que está subliminarmente dito aqui. As boas idéias DEVEM SEMPRE ser copiadas entre os projetos semelhantes.

Conclusão

Acredito que, com esses focos bem definidos, o Linux só tem a ganhar em seu crescimento, sem acabar ficando pior que o Windows no inchaço. Afinal, somos uma comunidade sem precedentes em números de desenvolvedores. Nenhuma empresa (ou mesmo a soma delas) poderia se igualar no número de 'mentes brilhantes' a favor do desenvolvimento de software. Ainda mais quando falamos de Linux e SL/CA para Linux. Porém, quanto maior o número de pessoas, sem o controle ou diretrizes bem definidos, pior será o desenvolvimento dos mesmos. E esse problema, se não resolvido, criará um inchaço (com direito a rupturas) muito maior no futuro.

Interatividade

Agora é a vez de vocês. Gostaria que dessem suas opiniões, sugestões, críticas e/ou reclamações sobre o texto acima. Também gostaria de saber de casos relacionados vivenciados por vocês, seja em casa ou no trabalho, com relação a ausência (ou existência) da modularidade no Linux (seja ele somente o Kernel, ou todas as camadas dessa cebola digital).

Links de Interesse

Esse texto e minhas opiniões foram baseadas nesses dois links.

- InternetNews.COM: http://www.internetnews.com/software...e.php/3840236/

- CNet News: http://news.cnet.com/8301-13505_3-10358024-16.html

Atualizado 05-01-2010 em 07:38 por code

Categorias
Não Categorizado

Comentários

  1. Avatar de ilsahec
    Super interessante!!!
  2. Avatar de code
    Citação Postado originalmente por ilsahec
    Super interessante!!!
    Obrigado por apreciar meu post. Espero também que goste de ler os demais. Pretendo escrever pelo menos um por dia. ;-)
  3. Avatar de Weslei
    Parabens...voce so falou verdade..otimo artigo..
  4. Avatar de code
    Citação Postado originalmente por Weslei
    Parabens...voce so falou verdade..otimo artigo..
    Obrigado pelo elogio. Continuarei a postar aqui no Under-Linux diariamente. Espero que goste também dos demais posts. :-)
  5. Avatar de Não Registrado
    O linux com o passar do tempo se torna mais forte na briga com o windonws. Mas os densenvolvedores de SL devem trabalhar juntos e não um contra o outro disputando qual tem um software melhor. Não quero sugerir uma padronização dos aplicativos. Deveria existir foruns especializados na solução de bugs de progamas e de SO. Proporcionando um desenvolvimento mais rapido do linux num contexto geral.
  6. Avatar de code
    Citação Postado originalmente por Não Registrado
    O linux com o passar do tempo se torna mais forte na briga com o windonws. Mas os densenvolvedores de SL devem trabalhar juntos e não um contra o outro disputando qual tem um software melhor. Não quero sugerir uma padronização dos aplicativos.
    Sim! Concordo perfeitamente com suas idéias. Acho que os desenvolvedores de projetos competitivos entre si, deveriam trabalhar juntos. Isso não cria padronização e muito menos perda de identidade de nenhum projeto. Muito pelo contrário! Projetos que trocam experiências entre si, que sabem aproveitar o que seu semelhante tem de bom (e que busca a completa interoperabilidade de informações e padrões de arquivos), só tendem a ganhar com isso.

    O mesmo vale para projetos distintos. Mesmo projetos totalmente diferenciados poderiam se beneficiar na construção de estruturas e funções que melhor funcionem para seus aplicativos. Isso também ajudaria e muito a padronizar diferentes aplicativos em plataformas gráficas complexas como KDE e GNOME.

    E, assim, em vez de termos vários vetores deficientes, lutando cada um por si contra o software proprietário, teríamos apenas um único e enorme vetor, completamente sólido e bem estruturado. O mais incrível disso tudo, é que já poderíamos já ter vencido essa guerra amuito tempo atrás, mas ainda estamos nos preocupando com batalhas isoladas e sem infraestrutura de apoio ou mesmo logística de suporte adequada.

    Citação Postado originalmente por Não Registrado
    Deveria existir foruns especializados na solução de bugs de progamas e de SO. Proporcionando um desenvolvimento mais rapido do linux num contexto geral.
    Também concordo. Acho que essa interatividade entre projetos semelhantes (e por que não projetos diferentes mas com estruturas em comum?) deveriam interagir, a ponto de se criarem fóruns e/ou outros meios digitais, que permitam uma completa sinergia entre os projetos. E volto a afirmar que essa ação não gera perda de identidade. Muito pelo contrário! Aumenta a robustez de desenvolvimento a aplicabilidade de cada projeto.
  7. Avatar de leojaco25
    Olha, sou novato nesse negócio de Linux. Ainda não consegui configurar o meu Debian corretamente. Mas este post é muito interessante, e legal. E numa coisa o Linus tem razão. Se deixar, o negócio fica igual ao Windows. Nem imagino como se desenvolve o kernel, mas poderia ser mais simplificado se existisse um único kernel, mais inteligente, que saberia em que tipo de hardware está sendo instalado.

    Quando um sistema fica muito grande, se não houver alguém (nesse caso um grupo) responsável por "guiar os passos" do desenvolvimento, o que acaba por ocorrer é que o projeto fica muito grande, e de difícil organização. No caso do Linux, pelo que estou vendo, isso não é realidade, pelo menos por enquanto.

    Mas parabéns pelo post. Quem gosta do Linux (como eu gosto), e quer vê-lo crescer mais e mais, com certeza não irá pelo caminho que o Linus está falando, mas o perigo de ir por este lado é grande.

    Jaco.
  8. Avatar de code
    Citação Postado originalmente por leojaco25
    Olha, sou novato nesse negócio de Linux. Ainda não consegui configurar o meu Debian corretamente.
    Então, você é um usuário iniciante de Linux? E escolheu o Debian como ferramenta em seu aprendizado neste mundo SL/CA? Posso dizer então que você já passou da primeira fase (que consiste em escolher uma distribuição a qual tenha afinidade)? Ou alguém lhe sugeriu a mesma e essa ainda é sua primeira distribuição?

    Caso esta seja a sua escolha, depois de testar outras distribuilções Linux, sugiro agora que você procure fóruns e listas de discussões sérias sobre o Debian. E se não souber inglês, procure as mesmas em português do Brasil. Mais saiba que estará muito limitado em número de opções. Existe muito mais material sobre qualquer distribuição Linux, no idioma inglês. Muito mais do que no nosso próprio idioma.

    E caso esta seja ainda em sua primeira distribuição Linux (ou porque você escolheu na unha, ou porque lhe indicaram a mesma para que começasse), aconselho você a experimentar outras distribuições Linux depois de um certo tempo de uso. Por que disso? Porque esta pode (ou não) ser a melhor distribuição para você.

    Esse é um conselho que dou para qualquer um que esteja entrando no mundo Linux: Experimente! Escolha por si mesmo a melhor distribuição para seu uso. Não é porque alguém fala que a distribuição X é melhor que a Y e Z juntas, que isso será verdade para você. Seja sempre crítico e avalie por conta própria, a medida que você for adquirindo conhecimento na área. Tudo bem em receber indicações de amigos ou profissionais, que estejam no meio a mais tempo que você. Afinal, por algum lugar nós temos de começar! :-D Mas lhe aconselho a não ficar preso apenas a uma distribuição logo de início.

    E uma coisa é importante você ter em mente: Não existe distribuição melhor ou pior. O que existe são distribuições diferentes, que irão atender a públicos distintos.

    Ah! E claro! Esse conselho de experimentação para iniciantes deve ser feito estritamente entre as distribuições de maior reconhecimento (procure pelas primeiras opções que aparecem no ranking do DistroWatch, no canto inferior direito, sob o título de "Page Hit Ranking"). É mais garantido.

    O porquê disso: Estatisticamente, distribuições mais famosas tem no seu histórico uma maior preocupação com o usuário iniciante, no que se refere a facilidade de uso e de configuração. Claro, depois que já estiver dominando pelo menos todo o básico sobre Linux (e não apenas sobre uma determinada distribuição), você poderá se aventurar sem medo pelas distribuições menos famosas. Pode ser até que sua distribuição preferida esteja entre elas. Ou, mais ainda, num futuro próximo (se esta for a sua linha de desenvolvimento no mundo open-source), você esteja criando a sua própria distribuição Linux :-D

    Dizem que Linux é que nem sorvete. Além de existirem centenas de tipos diferentes, sempre vai existir um sabor que você mais goste.

    Citação Postado originalmente por leojaco25
    Mas este post é muito interessante, e legal. E numa coisa o Linus tem razão. Se deixar, o negócio fica igual ao Windows. Nem imagino como se desenvolve o kernel, mas poderia ser mais simplificado se existisse um único kernel, mais inteligente, que saberia em que tipo de hardware está sendo instalado. Quando um sistema fica muito grande, se não houver alguém (nesse caso um grupo) responsável por "guiar os passos" do desenvolvimento, o que acaba por ocorrer é que o projeto fica muito grande, e de difícil organização. No caso do Linux, pelo que estou vendo, isso não é realidade, pelo menos por enquanto.
    De acordo com o próprio Linus, sabemos que o desenvolvimento do kernel acabou pegando uma 'curva fora do mapa' e, acidentalmente, anda muito distante do que ele gostaria que o Linux realmente fosse nos dias de hoje. Mas ele não deve se culpar por isso, porque, se o Linus não estivesse controlando o desenvolvimento do kernel com mãos de ferro, acredito que o kernel/GNU/Linux já estaria tão desordenado (e inchado a ponto de explodir) quanto o que acreditamos que o Windows seja (NOTA:lembre-se que não temos o código do Windows disponível, para podermos fazer uma avaliação precisa do seu modus operandi e status quo, mas tudo indica que o mesmo possui 'grandes e fundamentais erros de projeto').

    Citação Postado originalmente por leojaco25
    Mas parabéns pelo post. Quem gosta do Linux (como eu gosto), e quer vê-lo crescer mais e mais, com certeza não irá pelo caminho que o Linus está falando, mas o perigo de ir por este lado é grande.

    Jaco.
    Saiba que, a direção que o Linux toma depende exclusivamente de nós, sua Comunidade. Esse é o sentido do Bazar. O Linux é um experimento de desenvolvimento aberto e colaborativo que só tem provado ser altamente eficiente e funcional.

    E obrigado por apreciar meu post. :-) Espero que goste dos próximos temas, e sempre esteja antenado nas novidades aqui no Under-Linux. O portal Under-Linux tem investindo pesado em conteúdo de qualidade. E como um portal profissional de Tecnologia de Informação, você terá muita fonte de conhecimento para absorver e, inclusive, tirar suas dúvidas, sejam elas pessoais, ou mesmo profissionais, relacionadas a informática e Linux. E aproveite para sempre interagir com outros usuários logados no portal. Afinal, somente através de uma comunidade sólida e participativa, é que conseguiremos desseminar o conhecimento com mais facilidade e qualidade.
  9. Avatar de leojaco25
    Code, valeu pelas dicas.
    Eu já tentei usar o Red Hat 7.3, mas não fui muito longe. Não tinha nenhuma base sólida para me firmar. Mas acabei gostando do linux mesmo assim. Até por que comecei a trabalhar numa empresa com sistema em Linux (modo texto somente, e tinha muitas restrições para usá-lo). Mas escolhi o Debiam por indicação, devido a inúmeras tentativas fracassadas com o Red Hat 9 e Fedora Core 4. Tenho um amigo que está me ajudando a configurar, e disse que uma boa pedida era entrar em algum fórum (escolhi este, e gostei demais). Tenho interesse em testar várias distribuições, mas quero ter mais firmesa antes de mudar, e acho que o Debiam vai me proporcionar isso. E quando se tem uma boa base para um aprendizado, será mais fácil e seguro mudar quando for preciso ou possível.

    Meu interesse pelo Linux se deve, e grande parte, à participação e ajuda mútua que existe neste universo. Veja por exemplo a sua resposta ao meu comentário, que serviu de base para me firmar ainda mais aqui. São pessoas que nos encorajam a continuar aprendendo, e aprendendo mais e mais. E sempre dispostos a nos passar configurações, modo de tratar erros, distros a escolher, entre outros.

    Ainda não conheço o suficiente para auxiliar em desenvolvimentos, mas quando eu puder, saibam que estarei disposto a auxiliar mais pessoas a entrar neste universo.

    Agradeço pelas palavras que me dirigiu, e saiba que foram, são e serão, muito úteis quando eu for testar mais distros. E sempre que puder, estarei ajudando a todos, de acordo com meu conhecimento.

    Um abraço, e valeu pela dica.
    Jaco.
  10. Avatar de grandmaster
    Super interessante o post

    ---
    Renato de Castro Henriques
    CobiT Foundation 4.1 Certified ID: 90391725
    Renato de Castro Henriques

+ Enviar Comentário