Definição de Kernel:
O Kernel, que traduzindo-se obtemos "núcleo", como a própria palavra já expressa, é onde se centraliza algo, no caso de Sistemas Operacionais, o Kernel é o componente
do sistema onde é centralizada todas as comunicações de entrada e saída e processamento de dados. É neessário que se centralize tudo, pois este núcleo precisa ter o
mais baixo nível possível, servindo de ponte entre as aplicações e os dispositivos de processamento, memória e entrada e sáida de dados.
A importância de se ter um núcleo junto com o software, é que este núcleo, define-se como um componente do sistema mais complexo do que o sistema em sí, pois está
entre o código assembler, e os programas escritos "genéricamente" em alto nível. O sistema se tornaria complexo demais sem o uso de um Kernel.
Função do Kernel:
Durante o uso do Sistema Operacional, diversos aplicativo podem estar em execução aleatoriamente, isto é, compartilham o mesmo dispositivo, ambos os processos
precisam da atenção do hardware para que ele possa ser processado. Para que a demanda seja processada de forma ordenada, o componente responsável por gerenciar este
compartilhamento de processos, é o próprio núcleo do sistema, o Kernel. Ele é também responsável por endereçar os programas na memória, e definir as prioridades em
acessar dispositivos de entrada e saída, tais como teclado, mouse, monitor, unidades de disco, etc.
Sobre Kernel
O primeiro MAC OS, continha um kernel que não tinha suporte a multi tarefas, e carecia de recursos básicos, logo, no MAC OS X, foi utilizado juntamente ao sistema, o
núcleo do BSD, e Mach, que é um Kernel Micronúcleo, que basicamente cria um núcleo para gerenciar cada processo, tornando o sistema mais complexo de se desenvolver,
porém mais ágil.
No caso da Microsoft, o Kernel foi se caracterizando aos poucos ao longo das versões, até as versões 9x do windows, o kernel era um pouco abstrato, um kernel hidrido
16 e 32 bits, requerendo o MS-DOS rodando em fundo.
Pode-se destacar desta versão do kernel os seguintes arquivos:
IO.SYS - executavel responsavel pelas funções básicasde rotinas de entrada e saída de dados.
MSDOS.SYS - Contém configurações de baixo nível de boot.
COMMAND.COM - Executavel de linha de comando do shell
WIN.COM - Responsável em carregar a interface o sistema operacional em si.
LOGO.SYS - Contém o logo do windows em bitmap codificado exibido durante o boot do windows.
O sistema pode fazer o uso do arquivo CONFIG.SYS (que contém comandos executados antes do interpretador de comandos) e o AUTOEXEC.BAT (contém tarefas que são rodadas
antes de carregar o COMMAND.COM), mas estes dois arquivos não são tão criticos quanto os demais para o inicio do sistema.
Sistemas Superiores do Windows, usam Kernel chamando NT.Neste existem dois tipos de acesso à máquina propriamente dita. O modo Usuário, e o Modo Kernel.
No modo usuário, os aplicativos que rodam dele, trabalham com uma prioridade menor, o modo usuário é dividido em dois modos, o modo ambiente e o modo integral. O modo
ambiente foi inicialmente desenvolvido para trabalhar com aplicativos feitos para diferentes sistemas operacionais, rodando processos de 16 bits, parcialmente um modo
seguro de se rodar aplicativos antigos.
O modo integral é um tipo de Modo seguro, onde os acessos são concedidos conforme as permissões de cada usuário, através do uso de uma API.
O outro modo no Kernel NT, é o Modo kernel, que define-se como um modo que pode parar os processos do modo usuário, em casos onde estejam tentando acessar onde não se
tem a devida permissão. Aplicativos rodando sobre o Modo Kernel trabalham com um nível de prioridade maior, fazendo uma leitura direta aos drivers e ao Kernel.
Arquivos de alta importância deste Kernel: NTOSKRNL.EXE, NTKRNLMP.EXE, Ntkrnlpa.exe e Ntkrpamp.exe.
O Kernel do Linux
http://upload.wikimedia.org/wikipedia/en/timeline/b344a2a6fb295d5d30c8a9ce4f565969.png
http://upload.wikimedia.org/wikipedia/commons/5/5b/Linux_kernel_map.png
Os sistemas Linux, trabalham na mesma idéia, servindo de base para o desenvolvimento de kernels proprietarios, desde 1991, até o presente momento, os Kernels Linux,
se mostraram bastante eficazes, por serem abertos e eficientes, sendo utilizados largamente em computadores, CLPs e celulares. Kernels de Unix são basicamente
idênticos, sendo o centro em meio do Sistema operativo, o Shell e serviços de rotina (inicialização e etc), tendo como responsabilidade o Hardware. Em grosso modo,
pode-se dizer respectivamente que do usuário até o Hardware, temos os apliativos, o Sistema operacional, o Shell, o Kernel, e ai então o Hardware. Existem casos onde
aplicativos podem fazer parte do Kernel como rotinas, de modo a agilizar o processo, se tornando parte do sistema operacional, como o caso do Iptables, que consiste em
trabalhar com módulos inclusos no próprio Kernel do sistema.
De um modo bastante genérico, pode-se imaginar um Kernel como o motor de um carro, para conduzir o veículo, não manuseamos diretamente o motor, fazemos o uso de pedais, e comandos (shell) para então, controlarmos o motor (kernel) para movimentar o veículo (sistema operacional).
Fontes:
http://en.wikipedia.org/wiki/Linux_kernel
http://www.vivaolinux.com.br/artigo/Como-explicar-o-que-e-kernel-para-um-leigo/
http://en.wikipedia.org/wiki/File:Object_Manager_%28Windows%29_screenshot.png
http://en.wikipedia.org/wiki/Ntoskrnl.exe
http://en.wikipedia.org/wiki/Architecture_of_Windows_NT
http://en.wikipedia.org/wiki/Architecture_of_Windows_9x
http://en.wikipedia.org/wiki/Windows_kernel
http://pt.wikipedia.org/wiki/N%C3%BAcleo_%28inform%C3%A1tica%29
https://www.google.com.br/search?q=Kernel+unix&hl=pt-BR&safe=off&client=firefox-a&hs=Sis&tbo=u&rls=org.mozilla:pt-BR:official&tbm=isch&source=univ&sa=X&ei=O6O2UIXFFanI0QHK94HQBw&ved=0CDAQsAQ&biw=1366&bih=664
O Kernel, que traduzindo-se obtemos "núcleo", como a própria palavra já expressa, é onde se centraliza algo, no caso de Sistemas Operacionais, o Kernel é o componente
do sistema onde é centralizada todas as comunicações de entrada e saída e processamento de dados. É neessário que se centralize tudo, pois este núcleo precisa ter o
mais baixo nível possível, servindo de ponte entre as aplicações e os dispositivos de processamento, memória e entrada e sáida de dados.
A importância de se ter um núcleo junto com o software, é que este núcleo, define-se como um componente do sistema mais complexo do que o sistema em sí, pois está
entre o código assembler, e os programas escritos "genéricamente" em alto nível. O sistema se tornaria complexo demais sem o uso de um Kernel.
Função do Kernel:
Durante o uso do Sistema Operacional, diversos aplicativo podem estar em execução aleatoriamente, isto é, compartilham o mesmo dispositivo, ambos os processos
precisam da atenção do hardware para que ele possa ser processado. Para que a demanda seja processada de forma ordenada, o componente responsável por gerenciar este
compartilhamento de processos, é o próprio núcleo do sistema, o Kernel. Ele é também responsável por endereçar os programas na memória, e definir as prioridades em
acessar dispositivos de entrada e saída, tais como teclado, mouse, monitor, unidades de disco, etc.
Sobre Kernel
O primeiro MAC OS, continha um kernel que não tinha suporte a multi tarefas, e carecia de recursos básicos, logo, no MAC OS X, foi utilizado juntamente ao sistema, o
núcleo do BSD, e Mach, que é um Kernel Micronúcleo, que basicamente cria um núcleo para gerenciar cada processo, tornando o sistema mais complexo de se desenvolver,
porém mais ágil.
No caso da Microsoft, o Kernel foi se caracterizando aos poucos ao longo das versões, até as versões 9x do windows, o kernel era um pouco abstrato, um kernel hidrido
16 e 32 bits, requerendo o MS-DOS rodando em fundo.
Pode-se destacar desta versão do kernel os seguintes arquivos:
IO.SYS - executavel responsavel pelas funções básicasde rotinas de entrada e saída de dados.
MSDOS.SYS - Contém configurações de baixo nível de boot.
COMMAND.COM - Executavel de linha de comando do shell
WIN.COM - Responsável em carregar a interface o sistema operacional em si.
LOGO.SYS - Contém o logo do windows em bitmap codificado exibido durante o boot do windows.
O sistema pode fazer o uso do arquivo CONFIG.SYS (que contém comandos executados antes do interpretador de comandos) e o AUTOEXEC.BAT (contém tarefas que são rodadas
antes de carregar o COMMAND.COM), mas estes dois arquivos não são tão criticos quanto os demais para o inicio do sistema.
Sistemas Superiores do Windows, usam Kernel chamando NT.Neste existem dois tipos de acesso à máquina propriamente dita. O modo Usuário, e o Modo Kernel.
No modo usuário, os aplicativos que rodam dele, trabalham com uma prioridade menor, o modo usuário é dividido em dois modos, o modo ambiente e o modo integral. O modo
ambiente foi inicialmente desenvolvido para trabalhar com aplicativos feitos para diferentes sistemas operacionais, rodando processos de 16 bits, parcialmente um modo
seguro de se rodar aplicativos antigos.
O modo integral é um tipo de Modo seguro, onde os acessos são concedidos conforme as permissões de cada usuário, através do uso de uma API.
O outro modo no Kernel NT, é o Modo kernel, que define-se como um modo que pode parar os processos do modo usuário, em casos onde estejam tentando acessar onde não se
tem a devida permissão. Aplicativos rodando sobre o Modo Kernel trabalham com um nível de prioridade maior, fazendo uma leitura direta aos drivers e ao Kernel.
Arquivos de alta importância deste Kernel: NTOSKRNL.EXE, NTKRNLMP.EXE, Ntkrnlpa.exe e Ntkrpamp.exe.
O Kernel do Linux
http://upload.wikimedia.org/wikipedia/en/timeline/b344a2a6fb295d5d30c8a9ce4f565969.png
http://upload.wikimedia.org/wikipedia/commons/5/5b/Linux_kernel_map.png
Os sistemas Linux, trabalham na mesma idéia, servindo de base para o desenvolvimento de kernels proprietarios, desde 1991, até o presente momento, os Kernels Linux,
se mostraram bastante eficazes, por serem abertos e eficientes, sendo utilizados largamente em computadores, CLPs e celulares. Kernels de Unix são basicamente
idênticos, sendo o centro em meio do Sistema operativo, o Shell e serviços de rotina (inicialização e etc), tendo como responsabilidade o Hardware. Em grosso modo,
pode-se dizer respectivamente que do usuário até o Hardware, temos os apliativos, o Sistema operacional, o Shell, o Kernel, e ai então o Hardware. Existem casos onde
aplicativos podem fazer parte do Kernel como rotinas, de modo a agilizar o processo, se tornando parte do sistema operacional, como o caso do Iptables, que consiste em
trabalhar com módulos inclusos no próprio Kernel do sistema.
De um modo bastante genérico, pode-se imaginar um Kernel como o motor de um carro, para conduzir o veículo, não manuseamos diretamente o motor, fazemos o uso de pedais, e comandos (shell) para então, controlarmos o motor (kernel) para movimentar o veículo (sistema operacional).
Fontes:
http://en.wikipedia.org/wiki/Linux_kernel
http://www.vivaolinux.com.br/artigo/Como-explicar-o-que-e-kernel-para-um-leigo/
http://en.wikipedia.org/wiki/File:Object_Manager_%28Windows%29_screenshot.png
http://en.wikipedia.org/wiki/Ntoskrnl.exe
http://en.wikipedia.org/wiki/Architecture_of_Windows_NT
http://en.wikipedia.org/wiki/Architecture_of_Windows_9x
http://en.wikipedia.org/wiki/Windows_kernel
http://pt.wikipedia.org/wiki/N%C3%BAcleo_%28inform%C3%A1tica%29
https://www.google.com.br/search?q=Kernel+unix&hl=pt-BR&safe=off&client=firefox-a&hs=Sis&tbo=u&rls=org.mozilla:pt-BR:official&tbm=isch&source=univ&sa=X&ei=O6O2UIXFFanI0QHK94HQBw&ved=0CDAQsAQ&biw=1366&bih=664