Pergunta

Eu entendo que ambos são suposto ser pequeno, mas quais são as principais diferenças entre os dois?

Foi útil?

Solução

Exokernel é um sistema de operando a partir MIT (e uma classe de suas variantes) que lida com relativamente pouca abstração de hardware. Em exokernel, as responsabilidades de baixo nível de controle de hardware (especialmente alocação de memória ) muitas vezes são deixados nas mãos do desenvolvedor. Muitos desenvolvedores provavelmente preferem ter o SO ter mais responsabilidade de tais tarefas de baixo nível, porque a maioria dos desenvolvedores estão apenas escrevendo aplicações.

Um exokernel apenas aloca recursos físicos de hardware para programas . Isso permite que o programa para usar sistemas operacionais da biblioteca, que são ligadas para fornecer alguma da abstração que o exokernel não está fornecendo. O desenvolvedor pode então escolher entre os modelos de abstração, ou rolar seus próprios. Dada a aplicação, isso pode ter grandes benefícios de desempenho. Se você não sabe o que está fazendo, você também pode escrever programas que vai explodir quando deixam de funcionar.

A maioria dos kernels vai fazer mais para hardware físico abstrato recursos em algum tipo de modelo teórico . A interfaces de desenvolvedor com este modelo, que lida com os pontos mais delicados de lidar com hardware internamente.

O termo nanokernel é usado para descrever uma específica tipo de núcleo . O prefixo "pico-", ou "nano", "micro" é geralmente denotando o "tamanho" do kernel .. kernels Bigger são mais construídos com mais recursos, e alça mais hardware abstração . Nanokernels são relativamente pequenos núcleos que fornecer hardware abstração , mas carecem de serviços do sistema . microkernels modernos também não têm serviços do sistema, de modo que os termos tornaram-se análoga.

nomes dos kernels geralmente resultam de um lote específico de investigação que produziu um novo tipo de kernel, por exemplo, o kernel desenvolvido na Carnegie Mellon chamada "Mach", que foi um dos primeiros exemplos de uma "microkernel" moderna.

Sidenote: O benefício real de exokernel é escolha. Na maioria das vezes, um monte de abstração significa menos erros catastróficos. Em algumas aplicações, você pode querer usar um modelo de abstração diferente, ou você pode querer lidar com tudo sozinho. Se quisermos acabar com a abstração OS para um projeto particular, nós teríamos que cortar o sistema operacional e cometer um pedaço de hardware para o trabalho. No caso de exokernel, isso não é necessário. Nós podemos programar diretamente "ao metal", mas também optar por link em um modelo de abstração sempre que quisermos. É um conceito muito poderoso.

Sidenote : Lidando com a memória em um nível tão baixo é desnecessária para a maioria dos desenvolvedores de aplicativos. Normalmente existem várias camadas de sistema operacional construído em cima de um kernel, e seu aplicativo será executado no mais alto nível do sistema operacional. Ao escrever em javascript, você está mais acima ainda, a interface com um modelo implementado em uma aplicação que roda em um sistema operacional, etc. etc. Dirigindo memória, enquanto ele não deve ser ignorado, pode significar algo completamente diferente para um desenvolvedor que está escrevendo em um alto nível de abstração tal.

Outras dicas

Eu encontrei um elo que é realmente muito útil para diferenciar micro monolítica e exonúcleo. ligação é --- http://www.scribd.com/doc/174682128 / Diferença-entre-monolítica-microkernel-and-exokernel

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top