imported>Lijealso m (Revertidas edições por 200.204.144.166, para a última versão por Patrick) |
(Windows NT não é monolítico, é um microkernel (v. http://www.microsoft.com/resources/documentation/windowsnt/4/workstation/reskit/en-us/archi.mspx)) |
||
Linha 14: | Linha 14: | ||
* [[BSD]] | * [[BSD]] | ||
* [[Núcleo do Linux|Linux]] | * [[Núcleo do Linux|Linux]] | ||
Linha 23: | Linha 22: | ||
* [[Hurd]] | * [[Hurd]] | ||
* [[Minix]] | * [[Minix]] | ||
* [[Windows NT|Microsoft Windows NT]] | |||
==Enlaces externos== | ==Enlaces externos== |
Edição das 14h18min de 7 de janeiro de 2006
Kernel de um sistema operacional é entendido como o núcleo deste ou, numa tradução literal, cerne. Ele representa a camada mais baixa de interface com o Hardware, sendo responsável por gerenciar os recursos do sistema computacional como um todo. É no kernel que estão definidas funções para operação com periféricos (mouse, disco, impressora, interface serial/interface paralela), gerenciamento de memória, entre outros. Resumidamente, o kernel é um conjunto de programas que fornece para os programas de usuário (aplicativos) uma interface para utilizar os recursos do sistema.
Quanto à sua arquitetura, o kernel pode ser monolítico - em um único bloco, com todas as funcionalidades carregadas na memória - ou modular - com os módulos específicos para cada tarefa carregados opcionalmente, dinamicamente.
O kernel é a parte mais importante do sistema operacional, pois, sem ele, a cada programa novo que se criasse seria necessário que o programador se preocupasse em escrever as funções de entrada/saída, de impressão, entre outras, em baixo nível, causando uma duplicação de trabalho e uma perda enorme de tempo. Como o kernel já fornece a interface para que os programas possam acessar os recursos do sistema de um nível mais alto e de forma transparente, fica resolvido o problema da duplicação do trabalho.
Quando há periféricos ou elementos de um sistema computacional que o kernel não cobre, então se faz necessário escrever a interface para eles, os chamados device drivers. Geralmente, os kernels oferecem uma função para se executar chamadas de sistema, como por exemplo a ioctl() do Linux. Valendo-se dessa função, podem-se escrever rotinas para qualquer dispositivo.
Kernel monolítico
Kernel monolítico ou mono-bloco é um kernel que implementa um interface de alto nível para possibilitar chamadas de sistema específicas para gestão de processos, concorrência e gestão de memória por parte de módulos dedicados que são executados com privilégios especiais.
Alguns exemplos deste tipo de kernel:
Micro-kernel
Micro-kernel é um termo usado para caracterizar o sistema cujas funcionalidades do sistema saíram do kernel e foram para servidores, que se comunicam com um núcleo mínimo, usando o mínimo possível o "espaço do sistema" (nesse local o programa tem acesso a todas as instruções e a todo o hardware) e deixando o máximo de recursos rodando no "espaço do usuário" (no espaço do usuário, o software sofre algumas restrições, não podendo acessar alguns hardwares, nem tem acesso a todas as instruções).
Enlaces externos
- Explicando o que é kernel para leigos (vivaolinux.com.br)
ast:Kernel ca:Nucli del sistema operatiu cs:Kernel da:Kerne (styresystem) de:Kernel en:Kernel (computer science) es:Kernel fi:Käyttöjärjestelmän ydin fr:Noyau (informatique) he:ליבת מערכת ההפעלה hu:Rendszermag ia:Nucleo (systema de operation) id:Kernel (Ilmu komputer) is:Stýrikerfiskjarni it:Kernel ja:カーネル ko:커널 (컴퓨터) lt:Branduolys (OS) nl:Kernel no:Kjerne (datamaskiner) pl:Jądro systemu operacyjnego ru:Ядро (операционной системы) sl:Jedro (računalništvo) sv:Operativsystemskärna zh:内核