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

Micro-Kernel ou Kernel Monolítico?


“Não estou aqui para criar uma discussão sobre qual dos dois paradigmas é o melhor ou qual deles deixa a desejar em algo! Provavelmente ambos possuem desvantagens e vantagens e seus defensores. Porém, esses termos por si só causam uma boa dose de dúvidas nos estudantes de Linux. Afinal, o que é um micro-kernel e kernel monolítico?”


Enviado por ThigU (thigu15Θgmail·com) - referência (localdomain.wordpress.com).

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 ramos1berto
Bom, artigo interessante,: Bom, artigo interessante, mas faltou especificar justamente
a escolha verdadeira que quem decide q modelo usar irá enfrentar:
Em principio o microkernel permite uma execucao mais modular
que pode melhorar certos aspectos, como segurança por exemplo,
na prática fica dificil gerenciar os vários módulos servidores
de maneira eficiente.
No entanto o caso do linux (não sei como funcionam os BSDs) é
muito interessante pois apesar de kernel ser monolítico como
se tem acesso ao fonte basta compilar um kernel personalizado
utilizando apenas os módulos desejados.

--

1berto

Comentário de popolony2k
Muito bom o artigo....: ...no blog, pois de maneira simples e sem entrar em detalhes técnicos "estressantes" o autor consegue "levantar a bandeira" de cada um dos modelos e quem sabe tenha aberto um caminho a ser explorado por interessados no assunto.

--
Popolon Y2k
PlanetaMessenger.org
FreeBSD/OpenBSD/NetBSD/Linux - My dream team

Comentário de 7933-0
Acho que faltou um pouco de profundidade...: O artigo poderia explanar um pouco mais sobre as vantagens de cada abordagem. A meu ver, o kernel linux é um dos mais eficientes kernels monolíticos, e tem a vantagem da arquitetura de drivers modulares. Eu já usei diversos sistemas, entre os quais freebsd, netbsd, QNX, BeOS, open-solaris e até o GNU/Hurd. Dentre esses, o linux leva vantagem na estabilidade, desempenho e funcionalidade, principalmente devido às ferramentas do GNU.

Agora quanto aos microkernels, o que merece realmente destaque é o BeOS; ele é estável, rápido e possui uma estrutura de servidores e drivers modulares muito eficientes, que não requerem permissões ROOT ou execução de scripts para funcionarem a contento. Para instalar um driver, seja ele de sistema de arquivos ou de dispositvos, basta copiar o driver para a pasta do sistema, e pronto. Apenas drivers para placas de som e video necessitam que se reinicie o servidor de multimídia. O QNX, pelo menos nas versões que usei, é pouco estável em i686, e não é tão amigável ao usuário quanto o BeOS.

Comentário de popolony2k
Faltou profundidade, mas ....: ...a meu ver essa falta de "profundidade" que torna esse artigo mais interessante, uma vez que força futuros debates mais profundos sobre tal assunto.

Sobre o QNX, caimos no novo "velho" problema das licensas. Como esse sistema é de propriedade de uma empresa, todas as ferramentas necessárias para o desenvolvimento de produtos baseados nessa plataforma, tem que ser obtidos do fabricante.....e pelo contato que tive com a QNX, tais ferramentas são pequenas fortunas !!

A propósito, a maioria dos sistemas atuais são baseados em POSIX, e se o desenvolvedor se preocupar em codificar respeitando o POSIX, a portabilidade será tranquila !

Tenho como exemplo um software embarcado para veículos não tripulados, que desenvolvi ano passado em que foi feito sob Linux (Fedora Core 4), esse ano foi recompilado (por outro desenvolvedor) no FreeBSD (TinyBSD) e até onde sei as diferenças foram mínimas, questões relativas à resolução de tempo nas funções temporizadoras, que no Linux trabalham com resolução em nanosegundos e no FreeBSD trabalham com resolução em microsegundos e que não influenciou na compilação...apenas na execução !!

--
Popolon Y2k
PlanetaMessenger.org
FreeBSD/OpenBSD/NetBSD/Linux - My dream team

Comentário de nemesis
hein?!: "Dentre esses, o linux leva vantagem na estabilidade, desempenho e funcionalidade, principalmente devido às ferramentas do GNU."

O que exatamente as ferramentas userland GNU têm a oferecer em estabilidade, desempenho e funcionalidade para um kernel?

--
;; ((lambda (x) x) "Isto é um comentário e não será executado nunca")

Comentário de popolony2k
Eu já acho que...: ...a vantagem está no simples fato de serem ferramentas GNU, pois essas estão disponíveis de maneira mais fácil e acessível ao desenvolvedor.

Outras, como as do QNX, apenas comprando suas licensas carrisimas.

--
Popolon Y2k
PlanetaMessenger.org
FreeBSD/OpenBSD/NetBSD/Linux - My dream team

Comentário de popolony2k
Apenas complementando....: ...uma alternativa ao QNX é o RT-Linux !

Que aí já fica mais próximo do mundo conhecido dos Linuxistas !

Segue o Link do "fabricante"

http://www.fsmlabs.com/

--
Popolon Y2k
PlanetaMessenger.org
FreeBSD/OpenBSD/NetBSD/Linux - My dream team

Comentário de Ark
O QNX é show de bola...: O QNX é show de bola...

Sobre o Windows, se não me engano os WinNT da vida usam uma variação do microkernel (porém com deturpações):
http://www.microsoft.com/technet/archive/ntwrkstn/reskit/archi.mspx
http://pt.wikipedia.org/wiki/Windows_NT

Sei que eles estragaram algumas idéias: por exemplo, o vídeo roda no espaço do kernel, por causa de desempenho (essa era a desculpa na época do NT, deveriam rever agora).

Quanto ao Hurd: se o Stallman parasse de portar tudo que faz para o Emacs ao invés de colocar no Hurd, com certeza esse estaria pronto.

Sobre o Linux: seu desempenho é invejável, mas dá dor no coração lembrar do design micro-kernel quando o navegador ou messenger congelam seu sistema inteiro... Claro que isso acontece com menos frequência, mas enfim...
Comentário de nemesis
mas hein?!: ele disse que linux leva vantagem por causa de estabilidade blablabla, PRINCIPALMENTE por causa das ferramentas userland GNU. Como exatamente ferramentas userland vão ajudar o kernel a ganhar estabilidade e blablabla? É o kernel que provê performance, distribui justamente tempo de CPU entre os programas e coisa e tal. Os programas GNU não participam em nada, então aquele PRINCIPALMENTE está equivocado.

--
;; ((lambda (x) x) "Isto é um comentário e não será executado nunca")

Comentário de popolony2k
Sim...: ...ele citou características que também sob meu ponto de vista não tem nada a ver com o "principalmente" referente às características citadas.

O porque do "principalmente" está mais para o que eu citei no post anterior.


--
Popolon Y2k
PlanetaMessenger.org
FreeBSD/OpenBSD/NetBSD/Linux - My dream team

Comentário de hamacker
Eu prefiro microkernel,: Eu prefiro microkernel, porque afinal de contas tamanho (micro) não é documento. :)

(tem vezes que não dá para resistir)

--
http://hamacker.wordpress.com
Comentário de ThigU
Obrigado pelos comentários!: Obrigado pelos comentários! Minha intenção realmente não foi falar de maneira profunda sobre o assunto, até porque não sou nenhum conhecedor do assunto. Apenas achei interessante escrever o artigo pois vi que existe uma certa confusão quanto aos termos "micro-kernel" e "kernel monolítico", já que muita gente acha que o Linux pode ser compilado como "micro-kernel" ou como "kernel monolítico"!

Também não quis dizer quem é o melhor, afinal, vai depender do que você pretende! A resposta que irá definir a sua arquitetura. Podem ver pela troca de farpas do Tanenbaum e Linus. Cada um com suas vantagens e desvantagens.

Achei legal os exemplos citados, pois enriquecem o conteúdo apresentado, com links e dicas de mais informações!

Até mais! :)

--
http://localdomain.wordpress.com
Comentário de Metatron
Artigo esclarecedor: Boa noite,

O seguinte artigo é esclarecedor (pelo menos para mim foi):

http://www.vmars.tuwien.ac.at/courses/akti12/journal/04ss/article_04ss_Roch.pdf

"De profundis clamo ad te Domine"
Comentário de Manoel Pinho
L4linux: O QNX é excelente para o que ele se propõe a ser: um sistema operacional de tempo real, mas uma das críticas que se fazia era do baixo desempenho no acesso a disco, o que o tornava bem inferior ao linux para ser usado como desktop ou servidor por exemplo.

O BeOS tem várias boas idéias mas também nunca serviu para ser usado como servidor e não é um sistema multiusuário como o unix/linux.

O kernel linux faz uma excelente dosagem de desempenho geral como desktop e servidor e, apesar da opinião de acadêmicos como o Tanenbaum, funciona e bem.

Entre usar sistemas diferentes como BeOS, QNX ou Hurd, talvez seja mais razoável investigar sistemas linux que rodem sobre microkernels como o L4linux

http://os.inf.tu-dresden.de/L4/LinuxOnL4/

L4Linux is a port of the Linux kernel to the L4 µ-kernel API. It is a (para-)virtualized Linux running on top of a hypervisor, completely without privileges if wanted.

L4Linux runs in user-mode on top of the µ-kernel, side-by-side with other µ-kernel applications such as real-time components. It is binary-compatible with the normal Linux/x86 kernel and can be used with any PC-based Linux distribution
Comentário de popolony2k
Sim, mas em um ....: ...sistema em tempo real, como os utilizados na indústria aeronautica por exemplo, o acesso a disco é praticamente inexistente devido a se tratar de mecanismo lento, uma vez que nesses sistemas cada tarefa tem sua fatia de tempo milimetricamente cronometrada, onde cada uma dessas tarefas deve respeitar essa fatia de tempo para perfeita harmonia do sistema como um todo !

Talvez isso explique a baixa performance do QNX quanto a acessos a filesystems !

Mas isso varia de aplicação para aplicação...algumas são mais criticas do que as outras.
--
Popolon Y2k
PlanetaMessenger.org
FreeBSD/OpenBSD/NetBSD/Linux - My dream team

Comentário de 7933-0
Parece que causei polêmica...: Não vejo o porquê da indignação de alguns por eu ter dito que muito da funcionalidade e desempenho do linux se deve ao userland GNU. Vejam bem, é claro que é o kernel quem faz o trabalho do controle dos tempos do núcleo e tal; só que o núcleo não pode se comunicar diretamente com o GCC, o Xorg e demais aplicativos do sistema. E é aí que entra a segunda mais importante peça de qualquer sistema tipo UNIX: a libC, que no caso do linux é a GNU libc, ou, glibc. Depois da glibc, outro componente importante do sistema é o GNU bash, que provê um interpretador de comandos para o sistema.

A diferença do kernel linux para o FreeBSD, NetBSD, solaris, open-solaris, etc, é esses sistemas possuem suas próprias versões da libC, daí por isso serem considerados como variantes completos do UNIX. Portanto, não podemos excluir o userland GNU e considerar que apenas o kernel é o responsável pelo desempenho do sistema, já que ele SÒ PODE se comunicar com os demais programas do sistema através da GNU libC.


Comentário de popolony2k
Post ....: ...esclarecedor sobre seu real ponto de vista descrito anteriormente !!

--
Popolon Y2k
PlanetaMessenger.org
FreeBSD/OpenBSD/NetBSD/Linux - My dream team

Comentário de MisterTC
QNX: Sobre o QNX, até 2003 existia uma cópia não-comercial, ou seja, você podia utilizar ela em casa para uso pessoal sem custo algum.
E sobre o desempenho do QNX, realmente é algo invejável, pois ele boota em segundos no modo gráfico. Seu ambiente gráfico é muito rápido.
Das ferramentas de desenvolvimento, elas acompanhavam se não me engano a versão não-comercial também e estavam disponíveis para download.
Mas como faz tempo que usei, na época vc se cadastrava no site do QNX e fazia o download das ferramentas e tinha acesso a algum fonte, desde que para uso pessoal.
Para quem tiver interesse, visite este site: www.openqnx.com, lá vocês vão poder encontrar links inclusive para a versão demo em disquete do QNX.

E quem realmente tiver algum interesse, eu ainda tenho uma cópia da versão não-comercial do QNX Neutrino, que eu retirei do meu baú... Pois após ler os comentários, me lembrei que eu ainda tinha ele em algum lugar perdido em meu quarto ! Vou aproveitar que achei o CD e matar as saudades dos bons tempos em que eu usei !
BR-Linux.org
Linux® levado a sério desde 1996. Notícias, dicas e tutoriais em bom português sobre Linux e Código Aberto. "A página sobre software livre mais procurada no Brasil", segundo a Revista Isto É.
Expediente
Sobre o BR-Linux
Enviar notícia ou release
Contato, Termos de uso
FAQ, Newsletter, RSS
Banners e selos
Anunciar no BR-Linux
BR-Linux apóia
LinuxSecurity, Tempo Real
Suporte Livre, Drupal
Verdade Absoluta
Pandemonium
Efetividade, Floripa.net
sites da comunidade
Ajuda
Moderação
Flames: não responda!
Publicar seu texto
Computador para Todos
Notícias pré-2004
Tutoriais, HCL pré-2004