Você está na página 1de 8

MINISTRIO DA EDUCAO

SECRETARIA DE EDUCAO MDIA E TECNOLGICA


INSTITUTO FEDERAL DE EDUCAO, CINCIA E TECNOLOGIA DE
RORAIMA
Campus Boa Vista

Integrante 01
Integrante 02
Integrante 03
Integrante 04

MICROKERNEL

Trabalho de avaliao apresentado na


disciplina de Sistemas Operacionais do
curso superior em Anlise e
Desenvolvimento de Sistemas do Instituto
de Educao e Tecnologia de Roraima
como requisito complementar avaliativo.
Orientador(a): Prof.(a) Marcos Rodrigues
Lima

Boa Vista, Roraima, Brasil


2017
SUMARIO
INTRODUO

O termo kernel vem do ingls e significa ncleo, caracterizado por ser o


componente central do sistema operacional, atuando como uma ponte entre os aplicativos e o
processamento real de dados feito a nvel de hardware. Por ser esse elo entre hardware (parte
fsica) e software (parte logica), muitos os consideram como sendo o crebro do sistema
operativo, gerenciando o computador e permitindo que os aplicativos faa uso dos recursos
que a mquina tem.
Geralmente como um componente bsico do sistema operacional, o kernel pode
oferecer a camada de nvel mais baixo para os recursos como processadores e dispositivos de
entrada/sada, que softwares devem controlar para realizar suas funes.
Todos esses recursos esto disponveis para os processos de aplicativos atravs dos
mecanismos de comunicao entre processos e chamadas do sistema, que iro definir se
determinada aplicao ter acesso ou no as facilidades oferecidas pelo kernel.
Para um entendimento mais sucinto tenha em mente que um sistema operacional no
algo to simples de se desenvolver, no como uma aplicao comum. O kernel um
exemplo, sua base complexa seve de estrutura ao sistema operativo, atuando nos bastidores,
sem que sequer o usurio precise saber de sua existncia para poder utilizar o computador.
O fato de sua existncia ser do conhecimento de poucos, deve-se a sua grande
importncia. Como um componente essencial para o bom funcionamento de um computador,
sua ocultao imprescindvel para mant-lo a salvo de pessoas bisbilhoteiras e inexperientes.
O FUNCIONAMENTO DO KERNEL

Assim que o computador ligado, o kernel acionado e comea a detectar todo


hardware que ele possui e o que necessrio para eles funcionarem. Aps o sistema
operacional ser carregado o ncleo assume outras funes: gerencia os processos, os arquivos,
a memria e os dispositivos perifricos, fazendo dele o organizador de tudo que acontece na
mquina.
Aps realizar todas essas etapas, o sistema operacional est pronto para funcionar. Ele
carrega as funes responsveis por checar o que deve ser inicializado em nvel de software e
processos. Geralmente o que carregado a tela de login do usurio.
Alm disso, o kernel pode decidir quais dos programas que esto sendo executados no
momento, que devem ser alocados para o(s) processador(es).
Cada vez que voc conecta dispositivos (um pendrive, por exemplo) ao computador, o
kernel age na gesto da memria e na comunicao dos arquivos presentes nele com os
programas e o hardware.

FINALIDADES DO KERNEL

O principal propsito do kernel gerenciar os recursos do computador e permitir que


outros programas rodem e usem destes recursos, que consistem de:
Acesso a unidade de processamento central (CPU): O kernel tem a
responsabilidade de decidir, em qual momento, qual programa em execuo
deve ser alocado para o(s) processador(es).
Acesso a memria: O kernel responsvel pela deciso de que parte da
memria cada processo pode utilizar, e determinar o que fazer quando menos
do que o necessrio est disponvel.
Acesso aos dispositivos de entrada e sada: O kernel aloca pedidos de
aplicativos para realizar entrada/sada para um dispositivo apropriado e fornece
mtodo convenientes para o uso do dispositivo, abstraindo de forma que o
aplicativo no necessite conhecer detalhes da implementao do dispositivo.
Pensando na diviso de um PC em duas camadas: hardware e software. O kernel entra
como responsvel por fazer a interao entre essas camadas, para isso delegado ao kernel
algumas responsabilidades:
Gerenciamento de processos: O kernel deve permitir a execuo de
aplicativos e ajuda-los com recursos como a abstrao de hardware. Para o
funcionamento de uma aplicao kernel criar um espao de endereamento e o
carrega na memria, distribuindo uma parcela de tempo do processador para
sua execuo.
Gerenciamento de memria: O kernel possui acesso completo memria do
sistema e deve permite que processos acessem a memria com segurana
conforme sua necessidade, por meio do endereamento virtual. De forma que o
sistema possa utilizar meios de armazenamento de dados como um disco
rgido, para armazenar dados aos quais no caberiam na memria fsica do
computador. O endereamento virtual tambm permite a criao de parties
virtuais de memria em duas reas separadas, de forma que tenhamos uma
reservada ao kernel (espao do ncleo) e outra aos aplicativos (espao do
usurio), de modo que o kernel em execuo esteja protegido de ser danificado
por algum aplicativo.
Gerenciamento de dispositivos: O kernel deve manter uma lista de
dispositivos disponveis, em dispositivos do tipo plug and play, ele realiza uma
sondagem nos diferentes barramentos de hardware, como PCI ou USB para
detectar os dispositivos instalados e posteriormente procurar drives apropriados
para seu funcionamento.

CHAMADAS DO SISTEMA (SYSTEM CALLS)

Para que um processo possa acessar os servios fornecidos pelo kernel, ele deve
realizar solicitaes ao ncleo (system calls). As chamadas do sistema fornecem uma interface
essencial entre um processo e o sistema operacional.
Na maioria dos sistemas, as chamadas de sistema so possveis de serem feitas apenas
a partir de processos do espao do usurio, enquanto um alguns sistemas, OS/360 e sucessores
por exemplo, cdigo de sistema privilegiado tambm emite chamadas de sistema.
Os processadores modernos podem executar instrues com diferentes privilgios. Em
sistema com dois nveis de privilgios, eles so chamados de modo usurio e modo protegido.
Os sistemas operacionais disponibilizam diferentes nveis de privilegio que restringem as
operaes executadas pelos programas, por razoes de segurana e estabilidade.

PROTEO CONTRA FALHAS

Uma considerao importante no desenho do ncleo o suporte que ele oferece para
proteo contra falhas e comportamentos mal intencionados. Os mecanismos ou politicas
oferecidos pelo ncleo podem ser classificados de acordo com vrios critrios, como: esttico
(forado durante o tempo de compilao), dinmico (forado durante o tempo de execuo),
preemptivo ou ps deteco.
Em casos onde mltiplos aplicativos estejam rodando ao mesmo tempo, importante
prevenir que falhas em um dos programas afete negativamente o desempenho de outro.
Ampliando ainda mais essa abordagem importante evitar que softwares mal intencionados
acessem informaes ao qual no foi lhes dada a devida permisso.
As duas principais implementaes via hardware para proteo de informaes
sensveis so:
Domnios Hierrquicos de Proteo (arquitetura anel): Onde nveis mais
externos possuem menor privilgios, e os nveis mais internos maior
privilgios, formando domnios hierrquicos de proteo.
Endereamento Baseado em Capacidades: delegado unidade de
gerenciamento da memria a responsabilidade por checar as permisses de
acesso para todos acessos a memria.
Ambas as implementaes exigem algum tipo de suporte de hardware ou firmware
para serem operveis e eficientes. Hoje, os sistemas de computao usam regras aplicadas
pelo hardware sobre quais programas tm permisso para acessar quais dados. O processador
monitora a execuo e desliga um programa que viole uma regra, como por exemplo: ler ou
escrever na memria do ncleo.
Outra abordagem usar proteo baseada em linguagem, de forma que o kernel vai
permitir a execuo apenas de cdigo produzido por um compilador em que ele confie.

TIPOS DE KERNEL

Dependendo das polticas (modo de operao particular) e dos mecanismos (permite a


implementao de vrias polticas diferentes) implementado em um ncleo, este pode ser
classificado da seguinte forma:
Monoltico: Neste caso, os controladores de dispositivos e tambm as
extenses de ncleo so executadas no espao vago. Exemplos de ncleos
monoltico so: BSD, Linux, Windows, Solaris etc.
Microncleo: Alguns do processos so executados no prprio ncleo, porm,
o restante pode ser executado no espao vago. Permite alternar dinamicamente
entre sistemas operativos mantendo mais de um deles ativos simultaneamente.
Exemplos de microncleo so: MINIX, Hurd, Mach.
Hbridos: considerado um microncleo e conta com um cdigo no espao
do ncleo para que as operaes executadas possam ser mais velozes.
Exemplos de ncleos hbridos so: BeOS / Haiku, Windows NT, XNU (ncleo
Darwin do Mac OS X).
Nanoncleo: Delega virtualmente todos os servios para os drives de
dispositivos, desde os mais simples, como um temporizador. Com isso torna o
requerimento de memria ainda menor do que o dos microncleos. Exemplos
de nanoncleos so: Adeos, Dycos, EROS, JNode, KeyKOS.
Exoncleos: Este tipo de ncleo aloca recursos fsicos de hardware, podendo,
por exemplo, fazer que um programa sendo executado em um exoncleo possa
se ligar com uma biblioteca do sistema que tambm usa exoncleo para fazer
simulaes do sistema.

UM POUCO MAIS SOBRE MICRONUCLEO (MICROKERNEL)


Microkernels adicionam ganchos para manipulao de mdulos externos. Como
resultado, eles so bastante compactos por si s e so bastante rpidos em funes
embutidas. (ANDERSON, 2002).
A abordagem de microncleo consiste em definir abstraes simples sobre hardware,
com um conjunto de primitivos ou chamadas de sistemas para implantar servios mnimos o
sistema operativo, como gerenciamento de memria multitarefa e comunicao entre
processos. Outros servios, incluindo aqueles normalmente fornecidos por um ncleo
monoltico como rede, so implementados em programas de espao de usurio, conhecidos
como servidores.
Microncleos so mais fceis de manter que ncleos monolticos, mas um grande
nmero de chamadas de troca de contexto podem desacelerar o sistema devido a eles
geralmente gerarem mais degradao na performance do que simples chamadas de funo.
Um microncleo permite a implementao das partes restantes do sistema operativo
como aplicativos normais escritos em linguagem de alto nvel, e o uso de diferentes sistemas
operativos sobre o mesmo ncleo no-modificado. Ele tambm torna possvel alternar
dinamicamente entre sistemas operativos e manter mais de um deles ativos simultaneamente.

COMO FUNCIONA UM MICROKERNEL

O conceito de Microkernel de reduzir o kernel a comunicaes de processos


bsicos e controle de I/O, e deixar os outros servios de sistemas situados no user-space
(espao do usurio) em forma de processos normais (chamados de servers). Existe um
server para cada problema de gerenciamento de memria, um server faz gerenciamento
de processos, e outro gerencia drivers, e assim por diante. Devido os servers no
rodarem mais no espao do kernel, os chamados context switches (mudanas de
contexto) so necessrias para permitir que processos de usurio entrem no modo de
privilgio. Dessa maneira o microkernel no mais um bloco de servios de sistema,
mas representa vrias abstraes bsicas e primitivas para controlar a comunicao entre
os processos e entre um processo e o hardware subjacente. (ROCH, 2004).
Microkernels oferecem uma maior flexibilidade, pois voc pode adicionar vrios
mdulos de suporte sem realizar o reboot, mas existe um preo a se pagar. Mdulos
infectados, ou Trojan modules, apresentam um grande risco de segurana. Se o kernel carrega
tal mdulo, ele roda com todo o controle do sistema e privilgios do kernel em si.
(ANDERSON, 2002).

SISTEMA MACH

Mach um microncleo para sistemas operacionais desenvolvido na Universidade


Carnegie Mellon para apoio a pesquisa de sistemas operacionais, primariamente computao
distribuda e paralela. um dos primeiros exemplos de microncleo, e ainda o padro com o
qual projetos similares so comparados.
Mach foi desenvolvido como substituto para o ncleo na verso de Unix da BSD, de
modo que no se precisasse desenvolver um novo sistema operacional em torno dele. Embora
pesquisa sobre o Mach tenham acabado, ele e seus derivados esto em uso em um certo
nmero de sistemas operacionais comerciais, como NEXTSTEP, OPENSTEP e Mac OS X
(empregando o ncleo XNU).

SISTEMA DISTRIBUIDO COM MICROKERNEL

Como os recursos do sistema so acessados atravs de um protocolo cliente/servidor, e


para incluir um novo servio basta acrescentar um novo servidor. O microkernel permite
alterar suas partes sem a necessidades de reiniciar a mquina permitindo a expanso para um
sistema distribudo de forma mais fcil. Esse a tendncia nos sistemas operacionais
modernos levar adiante essa ideia de mover cdigo para camadas mais altas e remover tanto
quanto possvel do sistema operacional, deixando um mnimo de kernel. Para requisitar um
servio, como ler um bloco de um arquivo, um processo de usurio (agora conhecido como
processo cliente) envia a requisio para um processo servidor, que ento, faz o trabalho e
remete de volta a resposta. Outra vantagem do modelo cliente-servidor (alm de suportar bugs
sem precisar derrubar toda a mquina) a sua adaptabilidade para uso em sistemas
distribudos. Se um cliente comunica-se com um servidor enviando-lhe mensagens, o cliente
no precisa saber se a mensagem manipulada localmente na prpria mquina ou se foi
enviada atravs de uma rede para um servidor em uma mquina remota. No que diz respeito
ao cliente, a mesma coisa acontece em ambos os casos: uma requisio foi enviada e uma
resposta voltou.

CONCLUSO