Visite também: UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  Dicas-L ·  NoticiasLinux ·  SoftwareLivre.org ·  [mais] ·  Efetividade ·  Linux in Brazil ·  Floripa  

Renasce o debate: Torvalds X Tanenbaum, kernels monolíticos X microkernels

As discussões dos anos 90 entre o então estudante (e autor de um kernel monolítico bastante popular) Linus Torvalds e o professor Andy Tanenbaum (autor do Minix) sobre os méritos dos microkernels ficaram famosas no meio. E agora elas estão renascendo. Veja a cobertura do OSNews sobre a nova investida de Tanenbaum, a resposta de Linus e a réplica de um dos desenvolvedores do CoyoteOS, baseado em microkernel.

Você também pode ver as mensagens dos debates da década de 90, começando com a mensagem de 1992 do professor Tanenbaum intitulada "Linux is obsolete".

Comentários dos leitores

Os comentários abaixo são responsabilidade de seus autores e não são revisados ou aprovados pelo BR-Linux. Consulte os Termos de uso para informações adicionais. Esta notícia foi arquivada, não será possível incluir novos comentários.
Comentário de Peter Parker
Kernels: Como um developer do CoyoteOS disse: existem vários exemplos de microkernels rodando em sistemas críticos e de tempo real, como QNX (que roda em locomotivas, usinas, robôs médicos e atualmente nos novos produtos da CISCO), enquanto os sistemas monolíticos não tem muitos casos.
Além disso, SEMPRE todo programa bem estruturado vai ter uma dificuldade inicial de desenvolvimento maior que um que coloca várias coisas num bloco lógico só (claro que isso é uma puta simplificação). Mas a gente sabe que no decorrer do desenvolvimento a velocidade aumenta, os problemas se isolam e são facilmente localizados, etc.
É claro que sempre haverá um pequeno overhead, mas se for bem dosado, sempre acaba ajudando. Senão, ainda estaríamos programando tudo em Assembler.
Comentário de leonardo_lopes
Corrige aí, o nome é: Corrige aí, o nome é Coyotos, e não CoyoteOS. o OsNews errou nessa.

"Be realistic, ask for the impossible."
Leonardo Lopes Pereira
Comentário de leonardo_lopes
Só por curiosidade, vou dar: Só por curiosidade, vou dar inicio a uma nova sessão de FUD, pq eu sei que vão falar muito aqui sobre...

O velho e bom Hurd, que iniciou a ser escrito e desenhado em 1991 sobre o primeiro microkernel a ter existido, o Mach, está sendo redesenhado para se adequar ao Coyotos e assim que tiver o primeiro lançamento do Coyotos, provavelmente em julho, começarão os trabalhos de reescritura.

Quem sabe ele será o primeiro sistema operacional funcional de uso geral baseado em microkernel :)

"Be realistic, ask for the impossible."
Leonardo Lopes Pereira
Comentário de marcus
Bem lembrado: Foi bastante pertinente esse seu comentário.
Não sou especialista no assunto, mas eu tenho uma teoria sobre isso tudo:
Acho que kernels baseado em arquiterura microkernel não são bons para serem desenvolvidos usando o modelo bazar, por isso o hurd (microkernel) ainda não saiu e o linux (monolítico) está aí evoluindo a passos largos.
Creio que para um grande projeto de software tradicional (QNX?), que é normalmente todo pensado desde o início, sim. Mas para crescer sob demanda muitas vezes é necessário mudanças no design, que acaba por requerer re-trabalho em demasia.
Alguém tem algum comentário sobre isso?
Comentário de Peter Parker
Ops: Hm, verdade. Mas agora não consigo mais editar :)
Comentário de Penetro
Réplica de1992: Atenção pois a réplica do Linux Torvalds mencionada pelo OSnews é a de 1992 e não uma réplica ao comentário atual do Tanenbaum.

[]s
Penetro

Comentário de leonardo_lopes
Houve um comentário do: Houve um comentário do Linus sobre o artigo do Tanembaum, esse foi respondido pelo Shapiro no seu artigo. Talvez tenham errado o link, não chequei para ver.

"Be realistic, ask for the impossible."
Leonardo Lopes Pereira
Comentário de escovadordebit
Confusão.: Na verdade confesso que também achei os comentários confusos. Esperava pelos comentários originais postados pelos envolvidos mas na verdade o que existe são referências ao que supostameente foi dito.

De produtivo mesmo achei o artigo do Tanenbaum que embasa o posicionamento dele (boa leitura pro fim de semana).

De qualque forma esta questão parece ser bem complexa pois as vantagens dependem da abordagem que se tem sobre o assunto (falhas, facilidade de desenvolvimento, performance, etc.)

Linux user #226380
"Linux é amigável... Ele apenas sabe escolher os amigos."
Comentário de vmedina
Hurd: Por falar nisso, como será usar o Hurd?

Será como o Linux, mas com o Kernel diferente? Já usou ele Leonardo?


Vinícius Medina
Usuário Linux 383765. É um também? Mostre a sua cara!
Comentário de asd
MAC X OS: Tenho quase que certeza absoluta que o Mac X OS usa micro kernel:
http://developer.apple.com/opensource/index.html

Comentário de Manoel Pinho
Tanembaum: O Tanembaum sabe muito de sistemas operacionais mas não implementou um sistema tão utilizável quanto o linux. Falar é fácil. O Minix só recentemente teve um upgrade significativo e mesmo assim ainda continua um protótipo para fins educacionais. Se ele sabe tanto de microkernels, por que não ajuda o Hurd ?

Se ele tivesse implementado mais no Minix o Linus não precisaria ter feito o Linux.

Já usei o QNX e ele também tem os seus problemas de desempenho no acesso a arquivos e no uso como desktop em geral. O próprio MacOS X apanha do Linux em termos de desempenho em diversas coisas.



------------------------------
Participe (finalmente inaugurado):

Comunidade de Usuários do Mandriva Linux no Brasil
http://mandrivabrasil.org

Comentário de Patola
Mas é obrigação dele?: O Tanembaum sabe muito de sistemas operacionais mas não implementou um sistema tão utilizável quanto o linux. Falar é fácil. O Minix só recentemente teve um upgrade significativo e mesmo assim ainda continua um protótipo para fins educacionais. Se ele sabe tanto de microkernels, por que não ajuda o Hurd ?

Ele é um professor e ensina. E ensina muito bem, os livros dele são incrivelmente didáticos. O minix também - e é um bônus pra didática dele.

Por que ele teria que fazer um enorme esforço pra provar na prática tudo o que diz? Um engenheiro tem que ir lá fazer o edifício colocando os tijolos pra provar que seu projeto é bom? Ninguém faz isso. Nem mesmo o Linus fez o Linux para provar que kernel monolítico é melhor que microkernel, ele fez porque faltaram coisas ao Hurd por outros motivos.

Outras pessoas, empresas, e instituições demonstram isso, com seus produtos. O QNX e o BeOS são conhecidos por seu desempenho, e são microkernels. Isso seria bom pelo menos para pôr em dúvida o pressuposto de que kernels monolíticos são sempre mais rápidos (ou até que que é mais comum um kernel monolítico ser mais rápido do que um microkernel). O ponto do Tanenbaum não seria provado, mas seria exemplificado.

A isso se adicione que o conceito de "utilizável" é bastante relativo. Às vezes não é coisa do kernel, como a preempção entre os processos do sistema de janelas. Às vezes é até facilidade de uso, em vez de desempenho, coisa que não tem quase nada a ver com o kernel utilizado.

É tão absurdo e difícil admitir que o Linux, que nós todos amamos e usamos, não segue uma das melhores arquiteturas -- apenas se conseguiu dar bem em uma arquitetura francamente ultrapassada?
--
Dicionário rápido para o br-linux:
  • É exceção e não excessão.
  • É licença e não licensa.
  • É discussão e não discursão.
  • É opinar e não opnar.

Comentário de escovadordebit
Mas afinal Linux é: Mas afinal Linux é considerado monolítico ou híbrido monolítico.

Uma rápida pesquisa na rede mostra que esta é outra questão que parece gerar polêmica.

Se é considerado monolítico sugiro rever o FAQ publicado no BR-Linux.

Hoje o Linux é um kernel híbrido monolítico. Drivers de dispositivo...
http://br-linux.org/linux/faq-linux




Linux user #226380
"Linux é amigável... Ele apenas sabe escolher os amigos."
Comentário de Patola
Não sei: Mas afinal Linux é considerado monolítico ou híbrido monolítico.

Eu nunca li a fundo sobre uma categoria chamada "híbrido monolítico", mas não me parece que o mero fato de o Linux carregar módulos do kernel o torna mais parecido com um microkernel. Módulos de kernel estão muito, muito longe de ser serviços acopláveis com servidores como no microkernel e certamente não apresentam as mesmas vantagens.
--
Dicionário rápido para o br-linux:
  • É exceção e não excessão.
  • É licença e não licensa.
  • É discussão e não discursão.
  • É opinar e não opnar.

Comentário de leonardo_lopes
O hurd atual, que roda sobre: O hurd atual, que roda sobre o Mach, é praticamente igual ao linux em termos de uso, só muda algumas poucas coisas, como para montar sistemas de arquivos.

O ngHurd será relativamente diferente do Linux, já que não é intenção dele ser Unix-like. Mas ele ainda não existe, então não posso dizer o quão diferente ele é.

"Be realistic, ask for the impossible."
Leonardo Lopes Pereira
Comentário de Manoel Pinho
Acadêmicos: Ele não tem obrigação de criar um sistema que possa ser usado em produção mas então também não deveria criticar o linux, ainda mais quando ele é feito como software livre, em que qualquer um com uma boa idéia e bom código pode contribuir. Certamente ele teria muito mais argumentos se fizesse um microkernel que pudesse ser usado com vantagens em relação ao linux.

Eu já usei QNX e o desempenho como desktop e mesmo como servidor em geral é inferior ao de um linux, *BSD ou a maioria dos Unices comerciais por vários fatores, especialmente o fraco desempenho ao sistema de arquivos e algoritmo de gerenciamento de memória e processos. Ele foi projetado para ser usado em sistemas de tempo real, em que deve haver um tempo de resposta bem definido, e o uso do microkernel facilitou o projeto do sistema. É melhor ter um sistema com menor desempenho mas com um tempo de resposta confiável para dirigir um avião mas para um simples servidor web ou um servidor de arquivos o que importa é ter um desempenho maior, mesmo que o sistema seja feito de maneira menos elegante academicamente.

Vários benchmarks já mostraram que o MacOS X, por exemplo, tem desempenho inferior ao do linux

http://sekhon.berkeley.edu/macosx/intel.html


Microkernel é uma idéia interessante e como tudo sempre tem vantagens e desvantagens. É que nem a idéia de programação orientada a objeto versus programação estruturada. Se microkernel e OO só tivessem vantagens não teríamos sistemas como linux nem linguagens como Fortran (ainda muito usada por seu desempenho em cálculos).


------------------------------
Participe (finalmente inaugurado):

Comunidade de Usuários do Mandriva Linux no Brasil
http://mandrivabrasil.org