Escolar Documentos
Profissional Documentos
Cultura Documentos
Superrior Po
olitéccnico G
Gaya
Esco
ola Sup
perior d
de Ciên
ncia e T
Tecnolo
ogia
In
nformáática de
e Gestãão
Sistem
mas Operrativos
2
2008/2009
9
O P
Papel d
dos difeerentess tipos de núccleo na evoluçção
do
os Sisteemas Op perativvos
Jo
oel Corre
eia Ricarrdo & Cé
ésar Filip
pe Cardoso Marq
ques Pintto
Doce
ente: Jossé Augussto Monteiro
25 De JJaneiro d
de 2009
Instituto Superior Politécnico Gaya
Escola Superior de Ciência e Tecnologia
Informática de Gestão
Sistemas Operativos
2008/2009
O Papel dos diferentes tipos de núcleo na evolução
dos Sistemas Operativos
Joel Correia Ricardo & César Filipe Cardoso Marques Pinto
Docente: José Augusto Monteiro
25 De Janeiro de 2009
O papel dos diferentes tipos de núcleo na evolução dos Sistemas Operativos
.Índice
.GLOSSÁRIO 5
.LISTA DE SIGLAS 6
.INTRODUÇÃO 7
.DEFININDO NÚCLEO 8
..GENERALIDADES 9
.FUNCIONAMENTO DO NÚCLEO 9
..GESTÃO DE PROCESSOS 9
..GESTÃO DE MEMÓRIA 10
..GESTÃO DE DISPOSITIVOS 11
..CHAMADAS DE SISTEMA 11
.ARQUITECTURAS DE NÚCLEO 12
..NÚCLEO MONOLÍTICO 13
..MICRONÚCLEO 15
..NANONÚCLEO 16
..NÚCLEO HÍBRIDO 16
..EXONÚCLEO 18
.PAPEL DOS DIFERENTES NÚCLEOS NOS SISTEMAS OPERATIVOS 19
.CONSIDERAÇÕES FINAIS 21
.METODOLOGIA DE ESTUDO 22
..TIPO DE PESQUISA 22
..RECOLHA DE DADOS 22
..AGRUPAMENTO DE DADOS 22
..TRATAMENTO DE DADOS 22
..ELABORAÇÃO DO TRABALHO 23
.REFERENCIAS BIBLIOGRÁFICAS 24
.Índice de imagens
.Glossário
Componente ‐ Material electrónico que faça parte interna de um computador.
Por exemplo uma placa gráfica.
Drivers – Ficheiros que identificam o hardware. Estes permitem a comunicação
entre o S.O e o hardware. Estes ficheiros são normalmente geridos pelo núcleo.
Hardware ‐ Material físico de um sistema informático. É nele que realmente
todas as acções acontecem traduzidas por impulsos eléctricos, magnetismos ou
fotões.
Paginação ‐ Método de Virtualização da memória física. Tem a possibilidade de
usar o disco rígido como memória. Pode ser também denominado por Swap.
Software ‐ Sequencia de instruções construídas para interpretar as acções do
utilizador. Cabe ao software comunicar com a máquina e gerir as ordens
impostas pelo utilizador. É também responsável pela gestão dos recursos da
máquina.
Servidor ‐ Máquina informática com capacidade de fornecer serviços a uma rede
de computadores.
.Lista de siglas
S.O. ‐ Sistema Operativo
MIT ‐ Massachusetts Institute of Technology
MMV ‐ Monitor de Máquinas Virtual
C.P.U ‐ Central Processing Unit
GPL ‐ General Public License
API ‐ Application Programming Interface
XNU ‐ X is Not UNIX
.Introdução
Este trabalho foca‐se substancialmente no núcleo do sistema operativo.
Serão apresentados os diferentes tipos de núcleo existentes bem como as suas
diferenças e orientações.
Com a evolução da capacidade de processamento, surge cada vez mais a
necessidade de ter um sistema operativo que aproveite ao máximo essa
capacidade. Neste aspecto o desenvolvimento do núcleo, como principal
componente do S.O, tem de acompanhar toda a evolução do hardware.
Não só são apresentadas noções de núcleos como também em paralelo o
funcionamento do sistema operativo é levemente explicado para uma boa
compreensão do assunto central.
.Definindo Núcleo1
O núcleo
o do sistem
ma operativo
o, como o n
nome indicca, é o centrro do S.O. C
Cabe‐
lhe a
a ele gerir o sistema informático como um
m todo. Ele
e representta a camad
da de
softw
ware mais próxima do
d hardwaare e com isto tem como prin
ncipal funçção a
comunicação entre o hard
dware e o faactor humaano.
hatz2 (200
o Silbersch
Segundo 05) cabe ao
a núcleo abstrair a interface
e de
hard
dware para que processsos possam
m utilizar re
ecursos con
ncorrentem
mente.
Acordan baum3 (199
ndo Tanenb 99) e Silbe
erschatz (22005), o núcleo pode
e ser
monolítico, em
m camadass, ou miccrokernel (também
( c
conhecido
como cliente‐
serviidor).
1
Tam
mbém designaddo por “kernell”
2
Avi Silberschatz: Professor de ciências dos computadores
c na universidaade de Yale
3
Anddrew S. Tanenbbaum: Professsor de ciênciaas dos computaadores na univversidade de V
Vrije em
Amessterdão
Instituto Suuperior Poliitécnico de Gaya
G | SOP
P 8
O papel dos diferentes tipos de núcleo na evolução dos Sistemas Operativos
..Generalidades
Como camada de software mais próxima do hardware o núcleo assegura:
1. A comunicação entre o hardware e o software
2. Gestão das ordens do utilizador
3. Gestão dos diversos recursos da máquina
4. Máximo de rendimento possível
A generalidade dos S.O’s é elaborada envolto do núcleo e apoiam toda a gestão
sobre ele. Para o S.O o núcleo administra todo o hardware e é o software com mais
poder sobre o hardware num sistema informático.
.Funcionamento do núcleo
Como já foi dito cabe ao núcleo gerir a globalidade do sistema informático. É
ele que coordena os recursos da máquina para tentar tornar o sistema o mais
eficiente possível. O núcleo pode ser dividido em quatro partes:
1. Gestão de Processos
2. Gestão de Memória
3. Gestão de Dispositivos
4. Chamadas de Sistema
..Gestão de Processos
Esta pode ser considerara, das quatro partes, a mais importante do núcleo. É
nesta função que os processos de sistema são geridos, ou seja, é aqui que o núcleo
dá as permissões de execução. As cedências de memória são também aqui
calculadas e atribuídas. Uma tarefa fundamental da gestão de processos é a
consideração tomada em relação ao hardware de memória existente para que esta
não fique superlotada e cause problemas a alto nível4.
4
Problemas a nível de software
Instituto Superior Politécnico de Gaya | SOP 9
O papel dos diferentes tipos de núcleo na evolução dos Sistemas Operativos
..Gestão de Memória
O gestor de memória do núcleo tem acesso total a esta. É ele que gere a
memória física do sistema e a reparte pelos diversos processos. A primeira tarefa a
ser realizada é atribuir um endereço virtual7 que é feito a partir de paginação8 ou
segmentação.
A memória disponível depende muito dos processos que se encontram em
execução. O gestor de memória coloca em memória física os dados necessários
para todos os processos em execução. Uma vez inactivos os processos, os seus
dados são colocados em memória virtual (muito mais lenta) deixando espaço para
correr outros possíveis processos activos.
O endereçamento virtual permite repartir a memória em duas partes
distintas, uma direccionada para o núcleo e outra direccionada para o utilizador. A
parte reservada ao núcleo está calculada para que este possa manobrar todos os
recursos da máquina sem que haja interrupções ou esperas. A parte reservada ao
utilizador é direccionada para as aplicações e para as ordens do factor humano.
5
Processar várias aplicações ao mesmo tempo
6
Duas unidades de processamento dentro do mesmo componente de hardware
7
Permite abstrair o endereçamento físico
8
Também conhecido por Swap
Instituto Superior Politécnico de Gaya | SOP 10
O papel d
dos diferenttes tipos de
e núcleo naa evolução dos Sistem
mas Operatiivos
...Gestão de
e Dispositiivos
Outra fu
unção do núcleo
n é ge
erir todos os
o perifériccos e comp
ponentes de um
siste
ema informático. A fun
nção do ge
estor de disspositivos é
é basicame
ente administrar
todo
o o hardwarre, ou seja, encaminhaar ordens executadas pelo utilizaador.
Cabe tam
mbém a essta parte do
d núcleo comunicar
c entre o S.O
O e o hard
dware
recorrendo aoss chamadoss drivers9.
Existem os chamaados dispossitivos Plug
g and Play que são n
nada mais nada
menos que disp
positivos que podem ser adicion
nados ao siistema com
m a máquin
na em
consstante execcução. O ge
estor de dispositivos em primeirro procura novo hard
dware
em barramento
b os como USB
U ou PCII. Depois de
d detectad
do o hardw
ware, a pro
ocura
passa para os d
drivers adeq
quados.
...Chamadas de Sistem
ma
Todos os processo
os devem te
er a capacid
dade de usar ao máximo as intru
usões
ofere
ecidas pelo núcleo para umaa melhor performan
p ce. A form
ma de chamar
instrruções váriaa de núcleo
o para núcle
eo.
9
Fichheiros desenvoolvidos para o funcionamennto do hardwarre
Instituto Suuperior Poliitécnico de Gaya
G | SOP
P 11
O papel d
dos diferenttes tipos de
e núcleo naa evolução dos Sistem
mas Operatiivos
.Arq
quitectu
uras de n
núcleo
Existem cinco tiposs de núcleo
os distintos,, são eles:
1. Núcleo Mon
N nolítico
2. Micronúcleo
M o
3. Nanonúcleo
N o
4. Núcleo Híbr
N rido
5. Exonúcleo
E
Cada núcleo tem os seus apoiiantes, vanttagens e de
esvantagen
ns. Dependendo
do S.O,
S as suass finalidade
es e objecttivos, é implementad
do um núcleo que maais se
adeq
qua para oss seus fins.
Ilustração 3 - Diferentes núcleos e seuss apoiantes_________________
______
Instituto Suuperior Poliitécnico de Gaya
G | SOP
P 12
O papel d
dos diferenttes tipos de
e núcleo naa evolução dos Sistem
mas Operatiivos
...Núcleo M
Monolítico
10
Criaador do Sistem
ma Operativo Linux
11
Sisttema Operativvo desenvolviddo sobre a liceença GPL
Instituto Suuperior Poliitécnico de Gaya
G | SOP
P 13
O papel dos diferentes tipos de núcleo na evolução dos Sistemas Operativos
o módulo passa a formar um todo com o núcleo, usando a mesma API12. Este
esquema é usado, entre outros, pelo GNU/Linux, FreeBSD e diversos derivados de
UNIX.
Um sistema operativo com núcleo monolítico concentra todas as
funcionalidades possíveis (planeamento, sistema de arquivos, rede, drivers de
dispositivos, gestão de memoria, etc.) dentro de uma grande plataforma de
software. Ele pode ter um tamanho considerável e deve ser recompilado por
completo para adicionar uma nova funcionalidade. Todos os componentes
funcionais no núcleo têm acesso a todas as estruturas de dados internos e suas
rotinas. Um erro numa rotina pode‐se espalhar por todo o núcleo causando
problemas de desempenho. Todos os componentes encontram‐se integrados no
mesmo programa e são executados num único espaço de endereço. Assim todos os
serviços cedidos por este tipo de sistema são executados em modo elevado de
Supervisor13.
Os S.O’s integrantes deste tipo de núcleo, normalmente, começam por ser
pequenos programas. A0 longo dos tempos e devido á sua grande popularidade, é
lhes atribuído mais funções que os faz evoluir e transformar‐se em programas
grandes e complexos formados por muitas funções. Exemplos deste tipo de
sistemas são o MS‐DOS e UNIX. Ambos começaram pequenos sistemas operativos e
ao longo dos tempos foram tornando‐se duas referencias mundiais.
O problema deste tipo de sistemas operativos é que é complicado de os
modificar para adicionar novas funcionalidades e serviços. De facto, adicionar uma
nova funcionalidade implica modificar um grande programa, composto por milhares
de linhas de código e funções que por sua vez invocam outras linhas de código
situadas também no mesmo programa. A alternativa é ter uma estrutura
micronúcleo, onde as partes funcionais estão divididas em unidades separadas com
mecanismos de comunicação rigorosos entre eles.
12
Rotinas ou padrões de software desenvolvidos para que softwares externos possam usar os seus
serviços
13
Modo capaz de gerir o sistema e seus recursos
Instituto Superior Politécnico de Gaya | SOP 14
O papel d
dos diferenttes tipos de
e núcleo naa evolução dos Sistem
mas Operatiivos
...Micronúccleo
Este tip
po de nú
úcleo, ao contrário do mono
olítico, disspõe das suas
funcionalidadess divididas em unidad
des. Estas u
unidades sãão interligaadas por elo
os de
comunicação rigorosos en
ntre elas paara que não
o haja qualq
quer tipo de
e conflito.
O micronúcleo é um tipo de núcleo que
e cede um conjunto d
de chamadaas ao
ema para a execuçãão de servviços básiccos, como
siste o espaços de enderreços,
comunicação entre processsos e planificação básica.
Todos os
o outros serviços (gestão de
d memoria, sistemaa de arqu
uivos,
operrações de e
entrada / saaída, etc.), q
que geralm
mente são fo
ornecidas p
pelo núcleo
o, são
execcutados com
mo processsos servidores em espaço do utiliizador.
As princcipais vantaagens da su
ua utilizaçãão são a red
dução da ccomplexidaade, a
desccentralizaçãão de erross (um erro
o numa parrte do sistema não indisponibilliza o
siste
ema por completo) e facilita a crriação e de
epuração de drivers d
dos disposittivos.
Por outro lado
o, a sua principal dificculdade é a
a complexiidade na siincronizaçãão de
t
todos os módulos que
compõem o micronú
úcleo
e seu acessso à mem
mória.
Para além
m disso, os
processado
ores e as
a
arquitectur
ras mode
ernas
de hard
dware estão
e
optimizado
os para sistemas
de núcleo
o que po
odem
mapear to
oda a mem
mória.
De accordo com
defensoress desta
d
t
tendência
Isto melho
ora a
t
tolerância
a falhaas e
Ilustração 5 - Micronúccleo a
aumenta aa portabiliidade
entre
e plataform
mas de hardware. Os seus opo
ositores accham, fund
damentalmente,
maior complexidade no código, menor rendimento, ou limitações em várias
funções.
Segundo Tanenbaum (1995), The future of supercomputing lies in massively
parallel computers. The nodes of these machines will need a different kind of
operating system than current computers have. Many researchers in the field believe
that microkernels provide the kind of functionality and performance required.
Tanenbaum diz que de acordo com pesquisadores da área, o micronúcleo é o
núcleo com as competências e funcionalidades exigidas para uma boa operação de
sistemas informáticos de alto desempenho.
..Nanonúcleo
..Núcleo Híbrido
Os núcleos híbridos são essencialmente micronúcleos, que tem algum código
denominado de “não essencial” no espaço de memória do núcleo para que este
execute os processos mais rápido do que executaria no espaço de memória do
utilizador.
Este foi o compromisso que muitos dos primeiros desenvolvedores de
sistemas operativos, com a arquitectura baseada em micronúcleos, adoptou antes
de se demonstrar que os micronúcleos podem ter muito bom desempenho. A
maioria dos modernos sistemas operativos enquadram‐se nesta categoria de
núcleo, sendo o mais popular o Microsoft® Windows™. XNU14, o núcleo do Mac15 OS
X16, também é um micronúcleo modificado, devido à inclusão de código do núcleo
14
Núcleo do sistema operativo da Apple aplicado nos computadores MAC
15
Computador desenvolvido pela Apple
16
Sistema operativo integrado nos computadores MAC
Instituto Superior Politécnico de Gaya | SOP 16
O papel d
dos diferenttes tipos de
e núcleo naa evolução dos Sistem
mas Operatiivos
de FreeBSD
F no
o núcleo do
o famoso Mac.
M Assim
m podemoss designar o núcleo deste
d
siste
ema operatiivo como u
um núcleo h
híbrido.
Tende‐se
e em confundir núccleo híbrido com nú
úcleo monolítico modular
(consegue carre
egar módulos depois do arranqu
ue), o que é
é um erro. O
O núcleo hííbrido
implica que o n
núcleo em causa utilizze conceito
os da arquittectura ou no mecaniismo.
Tantto no núcle
eo monolíttico como no micronú
úcleo, todo
os os proccessos impo
ostos
pelo utilizador, são executtados no esspaço de m
memória de utilizador enquanto q
que o
núcle
eo híbrido t
tem a partiicularidade de executaar processo
os mais imp
portares naa área
de m
memória do núcleo parra que o processamen
nto seja mais rápido.
Ilustração
I 6 - Núcleo
N Híbridoo____________
______
...Exonúcleo
o
O exonú
úcleo foi criado no Insttituto de Te
ecnologia d
de Massach
husetts (MIT
T).
O conce
eito do exon
nucleo é im
mpor limitaçções de fun
ncionalidad
des aos sistemas
operrativos. Me
ediante a ab
bstracção n
necessária é criada e implementtada a cham
mada
livrarria17 que vai
v permitiir executar o processo preten
ndido. Os exonúcleo
o são
norm
malmente pequenos.
p Como a sua
s funcion
nalidade é limitada e
e controlávvel, a
segu
urança é elevada
e e a gestão
o de recursos muito
o eficiente
e. Assim estas
implementaçõe
es tornam‐sse muito mais simples do que nos restantess núcleos.
Os processoss podem pedir
endereçoss específico
os de mem
mória,
blocos de disco, etc. A função d
deste
núcleo é g
garantir ace
esso ao reccurso
e permitirr que o pro
ocesso o uttilize.
O acesso
o de baaixo nívell ao
hardware,, caracte
erístico deste
d
núcleo, permite
p ao
o program
mador
implemen
ntar abstraccções
personalizzadas e omitir as
desnecesssárias, contribu
uindo
normalme
ente paraa um melhor
desempen
nho da aaplicação. Isto
permite tamb
bém aos
programadores esco
olher os níveis
n
de abstraccção desejaados.
Os exonúcleos podem
m ser
Ilusttração 7 - Exon
núcleo
vistos co
omo um ssoftware linear
l
para os S.O’s, no sentid
do em que
e, devido á
á sua simp
plicidade somente ce
edem
recursos a um determinaado processo. Por ex
xemplo, o projecto
p do
o exonúcle
eo do
17
Códdigo desenvollvido para um funcionamennto especifico
Instituto Suuperior Poliitécnico de Gaya
G | SOP
P 18
O papel d
dos diferenttes tipos de
e núcleo naa evolução dos Sistem
mas Operatiivos
MIT, o servido
or Web Cheeetah guarda pré paccotes do protocolo
p IP no disco
o e o
eo garante o acesso seguro ao disco evitando leituras e escritas n
núcle não permittidas.
.Pap
pel dos d
diferente
es núcle
eos nos s
sistemas operativvos
Neste caapítulo fico
ou decidido
o abordar a evolução
o dos siste
emas operaativos
Wind
dows™ de uso pesso
oal. Estes sistemas desenvolvid
d dos pela M
Microsoft® têm
sofrido alteraçõ
ões importaantes ao longo dos an
nos.
Com a evolução do hardw
ware e daa cada ve
ez maior capacidade
e de
proccessamento
o, os S.O’ss em geral têm tam
mbém a ne
ecessidade de evoluir em
paralelo. Para satisfazerr estas ne
ecessidadess surgiram
m novos n
núcleos co
om a
finalidade de aproveitar aao máximo o hardwarre de um ssistema info
ormático. C
Como
camaada mais próxima
p do
o hardware
e, o núcleo
o do sistem
ma operattivo tem de ser
pioneiro em dar ao sistem
ma o máximo
o rendimen
nto e fiabilid
dade.
__
No ano de 1985 a Microsoft® lança o seu primeiro sistema operativo com
interface gráfica denominado Windows™ 1.0. Este sistema operativo tinha como
unidade central um núcleo monolítico. Ao longo dos anos o núcleo monolítico do
Windows™ foi sendo modificado e melhorando o desempenho de cada sistema
operativo produzido pela Microsoft®. Contudo, como era de prever, a evolução de
hardware continuou e foi necessário tomar medidas para acompanhar esta
evolução. Com o lançamento do Windows™ 2000, a Microsoft não só iniciou a era
NT18 para utilizadores comuns como passou a implementar o núcleo híbrido nos
seus sistemas operativos até aos dias de hoje com excepção do Windows™ ME.
Como o núcleo monolítico obrigava a uma recompilação e a um reinício do
sistema sempre que uma funcionalidade era adicionada, o sistema tornava‐se
bastante desconfortável, nomeadamente em sistemas que requeriam actividade
continua. Com isto o núcleo híbrido passou a ser uma parte fundamental do
Windows™. Assim foi possível dar continuidade aos desenvolvimentos informáticos.
18
Nova Tecnologia
Instituto Superior Politécnico de Gaya | SOP 20
O papel dos diferentes tipos de núcleo na evolução dos Sistemas Operativos
.Considerações Finais
Dentro do tema proposto a informação valida era reduzida. Existem várias
opiniões de qual é o melhor núcleo mas resumindo todos eles têm o seu
fundamento. De acordo com as situações em que são precisos, os tipos de núcleo
variam e assim se consegue ter uma razoável lista de escolhas. A implementação do
núcleo é muito importante uma vez que é ele que tem a função mais importante
dentro do sistema operativo.
Este trabalho foi muito útil para uma aprendizagem básica dos núcleos. Foi
conseguido também o objectivo o trabalho. A evolução dos sistemas operativos é
baseada no tipo de núcleo que lhe é implementado.
Em suma o factor núcleo é importantíssimo na evolução dos sistemas
operativos.
.Metodologia de estudo
Para a elaboração deste trabalho foram seguidas regras de estudo
previamente definidas.
Foram elas:
1. Escolha do tipo de pesquisa
2. Recolha dos dados
3. Agrupamento de dados
4. Tratamento dos dados
5. Elaboração do trabalho
..Tipo de pesquisa
Decidiu‐se usar uma pesquisa exploratória, ou seja, estudar a matéria dos
núcleos usando um processo lento de pesquisa. A pesquisa não só ficou limitada aos
diversos núcleos como também foram explorados outros temas como a integração
destes em sistemas reais.
..Recolha de dados
Os dados foram recolhidos na internet, livros e revistas, sendo sempre
sujeitos a validação de informação. Nada do que se encontra no trabalho é relativa a
fontes duvidosas ou inexistentes.
..Agrupamento de dados
Depois de a recolha estar concluída, os dados foram agrupados por temas
para ser mais fácil e intuitiva a sua compreensão e o seu tratamento.
..Tratamento de dados
Uma vez agrupados, os dados foram estudados e compreendidos para uma
posterior elaboração detalhada e estruturada.
..Elaboração do trabalho
Por fim depois de ter‐mos os dados prontos foi desenvolvido o trabalho com
o máximo de cuidado e atenção.
.Referencias Bibliográficas
Silberschatz, Avi (2005); Galvin, Peter B. Operating system concepts.
Tanenbaum, Andrew S. (1999). Sistemas Operativos Modernos.
http://www.owoelwo.info/pt/tipi‐di‐kernel/
http://pt.wikipedia.org/wiki/API
http://www.guiadohardware.net/termos/kernel‐monolitico‐kernel‐modular
Tanenbaum, Andrew S. (1996). The Amoeba Distributed Operating System
Tanenbaum, Andrew S. (1995). A Comparison of Three Microkernels
http://pt.wikipedia.org/wiki/Microsoft_Windows#Windows_1.0x