A tendência dos sistemas operacionais é tornar o núcleo meno...
O Kernal monolítico é exatamente o oposto do micro-kernel. A principal característica do kernel monolítico é permitir que funções como rede, vídeo e acesso a outros periféricos sejam possíveis através do kernel-space. Isso é possível através do uso de módulos. O que significa que um módulo, apesar de não estar no mesmo código do kernel, é executado no espaço de memória do kernel. Sendo assim, apesar de modular, o kernel monolítico continua sendo único e centralizado. Isso pode levar a considerações errôneas sobre o conceito. Segue abaixo uma representação do kernel monolítico. (Fonte: http://localdomain.wordpress.com/2007/07/22/micro-kernel-ou-kernel-monolitico/) Arquitetura Microkernel
Uma tendência nos SO modernos é tornar o núcleo do SO o menor e mais simples possível. Para implementar esta idéia, os serviços do sistema são disponibilizados através de processos, onde cada um é responsável por oferecer um conjunto específico de funções, como gerência de arquivos, de processos, de memória e escalonamento.
A utilização deste modelo permite que os servidores executem em modo usuário, ou seja, não tenham ac esso direto a certos componentes do sistema. Apenas o núcleo do sistema, responsável pela comunicação entre clientes e servidores, executa no modo kernel. Como consequência, se ocorrer um erro em um servidor, este poderá parar, mas o sistema não ficará inteiramente comprometido, aumentando assim a sua disponibilidade.
Seria mais ou menos assim:
[SERVIDOR DE ARQUIVO] [SERVIDOR DE MEMÓRIA] [SERVIDOR DE REDE]
[SERVIDOR DE PROCESSO] [SERVIDOR DE IMPRESSÃO]
Modo usuário
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Modo Kernel
[ M I C R O K E R N E L ]
[ H A R D W A R E]
Arquitetura de Sistemas Operacionais
3a.Ed. - Machado/Maia
pág. 60
Em computação, uma chamada de sistema (system call) é o mecanismo usado pelo programa para requisitar um serviço do sistema operacional, ou mais especificamente, do núcleo do sistema operacional.
Fonte:http://pt.wikipedia.org/wiki/Chamada_de_sistema
Nano kernel também é uma resposta válida pra essa questão.
Estrutura dos SO:
1) Sistema Monolítico: Todo sistema operacional, todas as suas instruções são o núcleo do SO. Todo mundo pode falar com todo mundo dentro do núcleo = paz e amor!
2) Sistema de Camadas: ainda monolítico, mas com hierarquia de camadas. Cada camada oferece um conjunto de funções que podem ser utilizadas apenas pelas camadas superiores.
3) Sistema Micronúcleo (Microkernel): aparecimento do módo núcleo;
4) Modelo Cliente-Servidor: uma forma de especialização dos Micronúcleos;
5) Sistema Exonúcleo (Verticalmente Estruturados): uma variação do Micronúcleo. Conceito embrionário de VMs.
Finalidade do núcleo:
O principal propósito do núcleo é gerenciar os recursos do computador e permitir que outros programas rodem e usem destes recursos.
Arquitetura Monolítica-> Pode ser comparada com uma aplicação formada por vários módulos que são compilados separadamente e depois linkados, formando um grande e único programa executável. Todos processos em um só núcleo.
Arquitetura de Camadas-> Devido ao Aumento da complexidade e do tamanho do código dos sistemas foi necessário criar técnicas de modulação então o sistema passou a ser dividido em camadas sobrepostas. Cada camada oferece um conjunto de funções que podem ser utilizadas apenas pelas camadas superiores(lembra um pouco REDES modelo OSI).
Vantagem: Isolar as funções do sistema operacional, facilitando a manutenção e depuração, além de criar hierarquia de níveis
Desvantagem: Queda no Desempenho.
Arquitetura Máquina Virtual -> Serve para criar um nível intermediário entre o hardware e o sistema operacional, denominado gerência de máquinas virtuais possibilitando a criação de diversas máquinas virtuais independentes onde cada uma oferece cópia virtual do hardware.
Vantagem: Portabilidade do código / consolidação de servidores/ aumento da disponibilidade / facilidade de escalabilidade e balanceamento de carga / facilidade no desenvolvimento de software.
Arquitetura MicroKernel-> Tendência nos sistemas operacionais modernos visando tornar o núcleo do SO o menor e mais simples possível.
Um dos benefícios da abordagem de microkernel é que ela facilita a extensão do sistema operacional. Todos os serviços novos são adicionados ao espaço do usuário e, consequentemente, não requerem a modificação do kernel.
O microkernel também fornece mais segurança e confiabilidade, já que a maioria dos serviços é executada como processos de usuário — e não do kernel. Se um serviço falha, o resto do sistema operacional permanece intocado.
Sistemas Híbridos -> Na prática, muito poucos sistemas operacionais adotam uma estrutura única rigidamente definida. Em vez disso, eles combinam diferentes estruturas, resultando em sistemas híbridos que resolvem problemas de
desempenho, segurança e usabilidade.
Por exemplo, tanto o Linux quanto o Solaris são monolíticos porque o desempenho é muito mais eficiente quando o sistema operacional ocupa um único espaço de endereçamento. No entanto, eles também são modulares para que novas funcionalidades possam ser adicionadas ao kernel dinamicamente.
Exonúcleos -> Um exonúcleo é um tipo de núcleo que não abstrai hardware in modelos teóricos. Ao invés disso ele aloca recursos físicos de hardware, como o tempo de um processador, páginas de memória, e blocos de disco, para diferentes programas.
Fonte:
Arquitetura de SO - Machado 5 ed /Fundamentos de SO - Silberschatz 9ed