Curso:Tecnólogo em Análise e Desenvolvimento de Sistemas 4° Semestre
Deusdete de Oliveira Junior
Rodrigo Santi
O que é o Kernel
Trata-se de uma série de arquivos desenvolvidos na linguagem C e em Assembly que formam o núcleo do Sistema Operacional. Esses arquivos são responsáveis pelo controle do hardware presente em sua máquina.A tarefa principal do kernel é permitir que todos os processos seja executados pela CPU e permitir que eles consigam compartilhar a memória do computador.Tudo o que está abaixo da interface de chamadas do sistema e acima do hardware físico é o Kernel.
ref.: http://www.infowester.com/linuxkernel.php
Tipos de Kernel
Kernel Monolítico
`
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.
Kernel Monolítico
ref.:http://localdomain.wordpress.com/2007/07/22/micro-kernel-ou-kernel-monolitico/
Micro-Kernel
É um método que estrutura o sistema operacional removendo todos os componentes que não são essenciais para o Kernel e implementando-os como programas de sistema e de nível de usuário deixando o Kernel menor. Com essa diminuição, tem-se como ganho a facilidade de expandir o sistema operacional.
Todos os novos serviços são inseridos no espaço do usuário o que não exige a modificação do Kernel.Quando, ainda sim as alterações são necessárias, elas são menores pois o Kernel é menor.
O Micro-Kernel não só é menor como é mais seguro e confiável pois a m aioria dos processos estão sendo executados como processos de usuários ao invés do Kernel. Caso haja alguma falha, o sistema operacional não sofre modificações.
Kernel Linux
O Kernel do Linux foi idealizado pelo Finlandês Linus Torvalds, no ano de 1991. Torvalds era estudante de ciência da computação. Em seus estudos teve de criar uma nova versão do Minix (sistema operacional baseado no Unix desenvolvido por Andy Tannenbaum).
Linus começou a trabalhar e, ao obter algo concreto enviou uma mensagem para um grupo de usuários do Minix na UseNet. Em sua mensagem, Linus notificou a todos e disse que disponibilizaria o código-fonte do seu desenvolvimento a todos os interessados.
A vontade de Linus era construir um sistema operacional no qual fosse possível de ser alterado conforme a necessidade.Ao criar a nova versão do Minix, Linus desenvolveu um método de utilizar o hardware do computador por software deixando livre, a cada interessado, adicionar aplicativos e funcionalidades desejadas para constituir o sistema operacional.
Versões do Kernel
Periodicamente, novas versões do kernel do Linux são lançadas. Isso ocorre para prover melhorias em uma determinada função da versão anterior, para corrigir vulnerabilidades e para adicionar recursos ao kernel, principalmente compatibilidade com novos hardwares.
Cada versão do kernel é representada por 3 números distintos separados por pontos, sendo que um quarto número pode ser aplicado, por exemplo: 2.6.21.3. O primeiro número indica a versão do kernel. Note que esse número muda raramente: a última alteração (até o fechamento do artigo referente) ocorreu em 1996, quando o kernel passou da versão 1 para a versão 2. O segundo número indica a última revisão feita até o momento naquela versão do kernel. O terceiro número, por sua vez, indica uma revisão menor, como se fosse uma "revisão da última revisão" do kernel. Note que o terceiro número pode ser acompanhado de pequenas siglas. Uma que costuma aparecer com freqüência é a sigla "rc" (release candidate), que indica a disponibilização de uma versão ainda não oficial, por exemplo: 2.6.22-rc1. Há siglas que apontam uma versão trabalhada por um desenvolvedor em específico, como a "mm", que indica as alterações feitas por Andrew Morton.
Como um quarto número pode ser usado, ele é aplicado quando uma falha grave no kernel for descoberta, sendo, portanto, necessário atualizá-lo. Porém, não faz sentido lançar uma revisão completa apenas por causa de algumas correções, razão esta que levou à utilização de um quarto número.
Não é necessário usar sempre a última versão do kernel. Só é recomendável fazer uma atualização em caso de necessidade de compatibilidade com novo hardware ou em casos de melhorias de recursos. Em alguns casos, principalmente com computadores antigos, o desempenho é melhor se usado um kernel antigo. Em situações simples, talvez seja melhor apenas aplicar um patch (uma correção para um problema) do que adicionar um kernel novo.
Compatibilidade
O kernel do Linux permite que o sistema operacional seja compatível com uma série de plataformas, desde palmtops até mainframes. Até mesmo nos computadores da Apple é possível instalar o Linux. As principais plataformas compatíveis são: Apple, Sun, Sparc, Alpha, PowerPC, i386 (Intel), ARM, entre outras.
Também existe compatibilidade com sistemas de arquivos. Apesar de não ser recomendável por questões de desempenho, é possível instalar o Linux até mesmo em partições FAT32. As principais compatibilidades neste aspecto são com os seguintes sistemas de arquivos: FAT, FAT32, ext2, ext3, ReiserFS, JFS, XFS, NTFS, entre outros.
Atuação do Kernel
O Kernel começa a atuar no processo de inicialização do sistema a partidas das instruções lidas na MBR (Master Boot Record - Recurso responsável por indicar a BIOS como e onde carregar o Sistema Operacional). Após essa etapa, o kernel começa a detectar os dispositivos de hardware essenciais do computador. Se tudo ocorrer bem nesta faze, a imagem do kernel passa a ser carregada. Em seguida, o kernel checa a memória e prepara para o uso através de uma função de paginação. Os IRQs, os discos, memória-cache, entre outros são acionados logo após esta função. Ao Final de todas estas etapas o sistema operacional esta pronto para funcionar.
O kernel carrega as funções responsáveis por checar o que deve ser inicializado em nível de software e processos, como, por exemplo, o conteúdo do arquivo /etc/init. Geralmente o que é carregado é a tela de login do usuário.
Usuário logado, sistema operacional trabalhando o kernel agora executa suas funções, como a de controlar o uso da memória pelos programas ou a de atender a chamada de uma interrupção de hardware.
É interessante notar que as distribuições Linux montam o kernel com recursos e drivers básicos para hardware, afinal carregar o suporte a todo tipo de dispositivo é algo inviável. O kernel ficaria extremamente grande e somente os drivers relacionados ao hardware do computador em questão é que seriam usados. Para lidar com esse tipo de problema, os drivers são carregados como módulos após o kernel ser ativado. A questão é que carregar recursos por módulo gera uma queda de desempenho (pouco significativa em computadores rápidos) e, por isso, muitos usuários preferem recompilar o kernel de seus sistemas para que esse carregue os drivers junto com sua inicialização, ou seja, sem usar módulos.
ref.: http://www.infowester.com/linuxkernel.php
O KERNEL do WINDOWS
O KERNEL, é importantíssimo para o bom desempenho do nosso Sistema Operativo, pois todos os programas dependem dele. Uma simples falha no mesmo, é o suficiente para provocar uma rotura em todos os outros programas ou contribuir para a perda de performance do nosso computador.
Quem é que nunca ouviu falar dos célebres “Ecrans azuis” (Blue Screen of Death), muito provavelmente todos nós. Para quem não sabe o responsável por este tipo de erros é o nosso “amigo” KERNEL, os ditos “Ecrans Azuis”, são o resultado de uma falha interna do mesmo ou então são o resultado de uma falha num driver associado ao processo, este tipo de erro é tão grave que o sistema operativo não consegue recuperar normalmente, sendo necessário proceder muitas vezes á recuperação do Windows através do CD de instalação, isto nos casos menos graves, pois outros há em que a resolução não é tão simples.
No Windows Vista, a Microsoft tenta minimizar este tipo de erros, salvaguardando a integridade do processo, ao mesmo tempo que tenta controlar o software instalado e o tipo de processos que são executados pelo mesmo. Há a tentativa de “isolar” todo este processo, ao contrário do que era feito até agora, nomeadamente no XP e 2003.
O KERNEL, é um dos primeiros processos a arrancar, quando o Windows se inicia, é ele que permite ao software “falar” com o Hardware, assim como é o responsável por tarefas tão básicas, como a gestão da memória, o lançamento de processos, o arranque dos programas e a gestão dos dados armazenados no nosso disco rígido. A performance, o rendimento e a segurança do nosso computador, dependem da integridade do KERNEL, dai a importância do mesmo.
Provavelmente, já ouviram falar em “Rootkit”, os quais são muito difíceis de remover e difíceis de detectar, temos sempre de recorrer a software de terceiros para o fazer… e por vezes acabamos por optar pelo método mais radical, a formatação do nosso disco rígido e a consequente reinstalação do Windows. Sem darmos por isso, os Rootkits, tentam ganhar aceso ao KERNEL e consequentemente o poder de controlar todas as outras aplicações do nosso computador (para evitar este tipo de situações convêm instalar um bom anti-malware, que consiga detectar rootkit).
Este tipo de “peste” é muito perigosa e tem como finalidade ganhar acesso aos ficheiros fundamentais do nosso sistema operativo Windows, monitorizando KeysStrokes, alterando logs de ficheiros, alterando aplicações do sistema, criando Backdoors no nosso sistema que permitam ganhar acesso remoto ao nosso computador e possibilitar ataques externos. Esta “peste”, tem também a “habilidade” de se esconder dos ficheiros de sistema, de algumas ferramentas anti-pestes e claro dos utilizadores… que muitas vezes só dão por ela, tarde demais.
Ao longo do tempo tem existido a tentativa de alterar o código base do KERNEL, por parte dos criadores de programas de Spyware/Malware/Vírus, com a única intenção de “esconder” os seus processos do utilizador, este tipo de alteração ao código, dá origem muitas vezes a erros no sistema operativo e á consequente falha de certos programas… não é por acaso que o nosso computador, quando está infectado por maleitas deste tipo, fica muito lento.
Para terminar, gostaria de relembrar que é deveras importante, instalar um Antivírus, um AntiSpyware/Malware e fundamentalmente mantê-los actualizados, assim como instalar os updates mais recentes do Windows. Se conseguirmos manter o nosso sistema operativo protegido, ficaremos menos sujeitos a este tipo de ataques e consequentemente o desempenho do nosso computador será muito superior.
ao mesmo tempo que outros tem um primeiro contacto com um dos processos fundamentais do Windows, existem outros como o HAL (Hardware Abstraction Layer ) que tem como “missão” carregar os drivers necessários ao bom funcionamento de todo o Hardware instalado no nosso computador.
Funcionamento do Kernel
Mais um grupo que se apresenta com um bom conteúdo e que disponibiliza sua pesquisa para comunidade.
ResponderExcluirAgora é só aguardar os demais comentários!
[]s
Este comentário foi removido pelo autor.
ResponderExcluirÓtimo trabalho, conteúdo bastante completo. Estou retornando às aulas e fico feliz em poder contar com essa "base de conhecimento online" de nosso próprio curso.
ResponderExcluir