O kernel do Linux: A definição, importância e funcionalidades

A partir deste artigo iremos conhecer uma parte do sistema operacional extremamente importante e pouco conhecida pelos usuários: o kernel.

[ Hits: 64.862 ]

Por: Aécio dos Santos Pires em 05/07/2007 | Blog: http://aeciopires.com


O que é kernel?



O Kernel é uma série de arquivos escritos em linguagem C e em linguagem Assembly que constituem o núcleo, o centro de todas as atividades desempenhadas pelo sistema operacional.

A importância e as funções do kernel

O Kernel é a parte mais importante do sistema operacional, pois sem ele, a cada novo programa 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 ele 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.

O kernel controla os dispositivos e demais periféricos do sistema, como: placas de som, vídeo, discos rígidos, disquetes, sistemas de arquivos, redes, permitir que todos os processos sejam executados pela CPU e que estes consigam compartilhar a memória do computador, além de outros recursos disponíveis.

O kernel do Linux

O kernel do Linux foi idealizado pelo finlandês Linus Torvalds em 1991. Torvalds era um estudante de ciência da computação que em seus estudos teve a necessidade de criar uma nova versão do Minix, um sistema operacional baseado no Unix e desenvolvido por Andy Tannenbaum.

Linus começou a trabalhar nesse projeto e quando desenvolveu algo concreto, enviou uma mensagem para um grupo de usuários do Minix na Usenet, a antecessora da Internet. Na mensagem, Torvalds notificou sobre sua criação e avisou que disponibilizaria o código-fonte do que tinha desenvolvido a todos os interessados.

O que Linus Torvalds tinha criado, na verdade, era a primeira versão do kernel do Linux. Assim, bastava juntar uma série de aplicativos com o kernel para que um sistema operacional fosse criado.

Linus Torvalds tinha vontade de ter um sistema operacional no qual fosse possível o usuário alterar conforme a necessidade. Ao criar a nova versão do Minix, Torvalds tinha desenvolvido um meio de usar o hardware de um computador por software e portanto, restava agora a cada interessado adicionar os aplicativos e as funcionalidades desejadas para assim constituir um sistema operacional.

Página anterior     Próxima página

Páginas do artigo
   1. Resumo
   2. O que é kernel?
   3. O que muda a cada nova versão do kernel do Linux?
   4. Considerações finais
Outros artigos deste autor

TCOS - Uma alternativa eficiente aos terminais burros

Leitura recomendada

Desmistificando a instalação do Dazuko

Ativando zRAM no Slackware

Kernel atualizado no Debian - Parte II

Como mudar o logo no kernel 2.6

Placas NVIDIA com kernel 2.6.8

  
Comentários
[1] Comentário enviado por pablover em 05/07/2007 - 08:24h

Por acaso essa definição de números pares e ímpares para as versões do kernel já não foi abandonada? Se não me engano isso aconteceu após o desenvolvimento do kernel passar a usar o GIT para controle de versões (a mais de um ano).

[2] Comentário enviado por aeciopires em 05/07/2007 - 08:47h

Olá, Pablo!

Você está com toda razão, mas permita-me fazer esta correção :

Como você disse a definição de números pares e ímpares foi abandonada e o kernel, desde um bom tempo adota o sistema GIT para controle de versões.

O GIT é sistema popular de controle de versão que foi originalmente escrito por Linus Torvalds e atualmente é mantido por Junio C Hamano para ser usado no desenvolvimento do seu kernel. O GIT é usado no desenvolvimento de grandes projetos para aumentar a rapidez e a eficiência dos trabalhos.

O GIT é projeto de software aberto e "licenciado" pelo Guia de Licença Pública GNU.

Para mais detalhes sobre o GIT visite Git - Fast Version Control System Disponível em: http://git.or.cz/

Muito Obrigado pela dica!












[3] Comentário enviado por coffnix em 05/07/2007 - 10:26h

vc tá doido? kernel atual 2.6.26????

veja em www.kernel.org

The latest snapshot for the stable Linux kernel tree is: 2.6.22-rc7-git4 2007-07-04 19:01 UTC B V C


ou seja? o último é o 2.6.22-rc7

abração

[4] Comentário enviado por aeciopires em 05/07/2007 - 10:52h

Oi, chemonz!

Foi um dispicência enorme minha ao errar na digitação! Eu sei que ainda não chegamos a utilizar o kernel 2.6.26. Continue dando esses "toques" que no próximo artigo eu irei melhorar.

Até mais!

[5] Comentário enviado por coffnix em 05/07/2007 - 11:18h

ae aeciopires....

esquenta não cara!!! vlw e continue mandando material de excelente conteúdo como esse pro VOL.

abração

[6] Comentário enviado por aeciopires em 05/07/2007 - 11:23h

Não se preocupe não amigo, eu acredito que as críticas só existem para ajudar a concertar os erros. E quanto a novos artigos eu irei continuar a minha de pesquisa sobre o kernel é só esperar. Ah eu terei mais atenção desta vez ehehehhe

[7] Comentário enviado por Ed_slacker em 06/07/2007 - 00:23h

Tenho uma dúvida: como funciona o sistema de versões do kernel agora com o uso do GIT?
Antes valia o que está no artigo: os dois primeiros dígitos informando a série do kernel e o terceiro dígito informando a versão de série do kernel.

Grato.

[8] Comentário enviado por aeciopires em 06/07/2007 - 12:51h

Olá, Edi!

O GIT é um sistema de controle de versões distruído. Para entender melhor vejamos o seguinte: existem dois tipos de modelos de software para controle de revisões: os centralizados e os distribuídos.

O modelo centralizado funciona à base de um repositório central onde todos os developers vão buscar a mais recente versão do projecto (criando uma cópia local na qual trabalham) e para onde submetem
as suas alterações.

O modelo distribuído funciona de forma a que cada developer trabalhe no seu próprio repositório e depois possa integrar ou submeter as mudanças de outros developers ou distribuir as suas próprias de
forma separada, individualmente ou em conjuntos. É costume existir também um repositório central, mas no entanto este funciona como se fosse apenas mais um developer do qual os outros developers podem escolher integrar as suas alterações ou não. Uma das grandes vantagens deste sistema é que ao contrário dos sistemas centralizados, podem funcionar num ambiente peer to peer, e um developer que esteja a trabalhar em algo mais complicado pode continuar a desenvolver essa parte do software na mesma cópia sem ter de submeter essas alterações para os outros developers.

A maior parte das informações - com todo o histórico - ficam guardadas num repositório (repository em inglês), num servidor qualquer. Geralmente o acesso é feito por um cliente pela rede (via socket) e pode ser feito localmente quando o cliente está na mesma máquina do servidor.

O repositório armazena a informação - um conjunto de documentos - de modo persistente num sistema de arquivos ou num banco de dados qualquer. É possível que o armazenamento seja feito em outros dispositivos capazes de "eternizar" e resgatar facilmente a informação.

Cada servidor pode ter vários sistemas de controle de versão e cada sistema pode ter diversos repositórios, limitando-se na capacidade de gerenciamento do software e também no limite físico do hardware. Geralmente um repositório possui um endereço lógico que permite a conexão do cliente. Esse endereço pode ser um conjunto IP/porta, uma URL, um caminho do sistema de arquivos etc.

Cada desenvolvedor possui em sua máquina uma cópia local (também chamada de working copy em inglês) somente da última versão de cada documento. Essa cópia local geralmente é feita num sistema de arquivos simples. A cada alteração relevante do desenvolvedor é necessário "atualizar" as informações do servidor submetendo (commit em inglês) as alterações. O servidor então guarda a nova alteração junto com todo o histórico mais antigo. Se o desenvolvedor quer atualizar sua cópia local é necessário atualizar as informações locais, e para isso é necessário baixar novidades do servidor (ou fazer update em inglês).

na prática o sistema de numeração do kernel passa a ser assim linux-2.6.git

2.6- indica a série do kernel

git- indica a versão da sériel do kernel

Para mais detalhes eu lhe recomendo acessar um artigo disponível na wikipédia: Sistema de Controle de Versão dponível em:

http://pt.wikipedia.org/wiki/Sistema_de_controle_de_vers%C3%A3o

Muito obrigado e peço desculpa a todos vocês por não ter incluído e atualizado isto no artigo.

[9] Comentário enviado por f_Candido em 09/07/2007 - 00:17h

Bem instrutivo. Gostei bastante, está me ajudando bastante na minha caminhada no Mundo Livre.

[10] Comentário enviado por angeloshimabuko em 14/07/2007 - 18:09h

O sistema de numeração atual do kernel possui 3 (x.y.z) ou 4 dígitos (x.y.z.w), onde x=2 e y=6. As versões estáveis e de desenvolvimento confundem-se. Quando uma nova release (z, onde o mais atual é z=22) é lançada, é porque possui algumas novas funcionalidades (a release 2.6.22 é de 08.07.2007) - v. changelog em <http://www.kernel.org/pub/linux/kernel/v2.6/>. Correções de bugs são lançadas incluindo-se o quarto dígito (w). O kernel 2.6.22.1 foi lançado em 10.07.2007.

[11] Comentário enviado por lazarojcs em 17/12/2007 - 11:02h

Prezados leitores aproveitando o espaço gostaria de saber se existe um curso direcionado apenas ao kernel do linux, criação de modulos, etc

se souberem podem estar enviando em meu e-mail ou postando aqui.

lazarojcs@hotmail.com


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts