Essays.club - TCC, Modelos de monografias, Trabalhos de universidades, Ensaios, Bibliografias
Pesquisar

Kernel, Microkernel e Exokernel

Por:   •  21/9/2018  •  1.984 Palavras (8 Páginas)  •  347 Visualizações

Página 1 de 8

...

foi escrito no editor de texto Sublime Text 3. O compilador usado para testar o programa foi o GCC (GNU Compiler Collection). Todo o processo de escrita e compilação ocorreu num ambiente Linux (Ubuntu).

1.3. Organização do Relatório

O presente documento divide-se da seguinte forma :

No presente capítulo, apresentam-se algumas notas introdutórias;

No segundo capítulo, apresenta-se a pesquisa feita sobre o tema atribuído;

No terceiro capítulo, apresenta-se o código do programa e os testes do mesmo;

No quarto e último capítulo, apresenta-se a conclusão do trabalho.

2. Referencial Teórico

2.1. O que é o Kernel ?

Kernel é o componente central do Sistema Operativo da maioria dos computadores. Ele tem um papel muito importante para o funcionamento dos computadores, por ser a ligação entre o processamento de dados e programas.

É o grande responsável por fazer a ligação entre o hardware e o software do computador. O seu objectivo principal é gerir a máquina e fazer com que as aplicações possam ser executadas através dos recursos existentes no computador. Além disso, o kernel tem como responsabilidade garantir que a memória RAM seja utilizada do melhor modo possível para que assim não ofereça qualquer risco para o computador.

2.2. Como funciona o Kernel ?

O funcionamento não ocorre de forma simples, mas sim apresenta-se como um processo complexo, dependendo do tipo de kernel que a máquina possui.

Cada tipo de kernel funciona de uma forma específica, e para compreender como funcionam, é necessário compreender a natureza de cada um.

2.3. Tipos de Kernel

2.3.1. Kernel Monolítico (SOLARIS)

O kernel monolítico tem acesso total ao hardware, o que o permite controlar todos os dispositivos e todas as extensões conectados. Baseado na abstracção de dados, reside numa única zona de memória, é fácil de implementar e apresenta um bom desempenho. Contudo, é difícil de estender e alterar.

O Solaris é um sistema Unix que foi desenvolvido originalmente pela Sun Microsystems e hoje pertence à Oracle, que adquiriu a empresa no início de 2010. A versão 10 do Solaris era distribuída gratuitamente, mas após a aquisição pela Oracle, a licença de distribuição do sistema mudou, tornando-se bem mais restritiva.

Figura 2 - Arquitectura do SOLARIS 10

Recentemente, a Oracle disponibilizou uma versão beta do Oracle Solaris 11.3, que inclui algumas das novas funcionalidades dos Oracle Solaris Zones, tais como a migração segura, a reconfiguração e a inicialização em tempo real, adequada para Oracle Solaris Kernel Zones.

Figura 3 - Arquitectura do SOLARIS 11

O Oracle Solaris Zones inclui suporte para ambientes totalmente independentes e isolados denominados Oracle Solaris Kernel Zones, que fornecem um ambiente completo de kernel e de usuário dentro de uma zona. As zonas do kernel aumentam a flexibilidade operacional e são ideais para ambientes em que as janelas de manutenção são mais difíceis de programar. As zonas do kernel são de funcionamento independente do kernel global e podem ser actualizadas separadamente sem a necessidade de reinicializar a zona global. Também é possível usar zonas do kernel juntamente com o Oracle VM for SPARC para uma maior flexibilidade de virtualização.

2.3.2. Microkernel (UNIX e Windows)

Neste tipo de núcleo, alguns dos processos são executados no próprio núcleo, porém, o restante pode ser executado no espaço vago. Permite alternar dinamicamente entre sistemas operativos e manter mais de um deles activos simultaneamente.

Os erros ocorridos no espaço do utilizador não indisponibilizam o Sistema Operativo. Contudo, o núcleo não corre sozinho e há uma grande intercomunicação entre processos.

GNU Hurd é um micronúcleo multi-servidor escrito como parte do GNU, desenvolvido para substituir o Unix e publicado como software livre. O GNU Hurd consiste num conjunto de protocolos e processo de servidores (ou daemons, em terminologia Unix) que correm no microkernel GNU Mach.

O Hurd pretende ultrapassar os sistemas operativos Unix em funcionalidade, segurança, e estabilidade, enquanto se mantêm bastante compatível a eles. O projeto GNU escolheu para o sistema operativo a arquitetura microkernel servidor–cliente, ao notar ganhos sobre a arquitetura monolítica Unix.

Actualmente, consideram-se os kernels híbridos, que são semelhantes aos microkernels. Os híbridos são mais velozes que os microkernels, devido a mudanças no código do espaço do núcleo.

Exemplo de kernel híbrido é o Windows NT.

A razão pela qual Windows NT não é um sistema de microkernel é que quase todos os subsistemas que fornecem serviços de sistema, são executados em modo kernel, no mesmo espaço de endereçamento que o próprio microkernel, e não em processos de servidor em modo usuário.

Figura 7 - Arquitectura do Windows NT

2.3.3. Exokernel

Este tipo de núcleo aloca recursos físicos de hardware, podendo, por exemplo, fazer que um programa executado num exokernel possa conectar-se a uma biblioteca do sistema que também usa o exokernel para fazer simulações do sistema.

O funcionamento deste núcleo é semelhante ao de uma máquina virtual.

A idéia é permitir que o desenvolvedor tome todas as decisões relativas ao rendimento do hardware. Os exokernels são extremamente pequenos, já que sua função se limita à proteção e à multiplexação dos recursos.

Pelo fato do exokernel proporcionar uma interface de baixo nível ao hardware, carecendo de todas as funções de alto nível dos outros sistemas operacionais, ele é complementado por uma «biblioteca de sistema operacional». Esta biblioteca comunica com o exokernel e facilita o uso de aplicações comuns entre os sistemas operativos.

Uma das implicações teóricas de um sistema exokernel é que é possível ter distintos tipos de sistemas operacionais (Windows, Unix,

...

Baixar como  txt (14.3 Kb)   pdf (65.4 Kb)   docx (19.5 Kb)  
Continuar por mais 7 páginas »
Disponível apenas no Essays.club