[kernel-br] Programando para o Kernel

Eduardo Habkost ehabkost em raisama.net
Terça Março 17 13:27:45 EDT 2009


On Tue, Mar 17, 2009 at 02:06:21PM -0300, Igor Sbampato Mol Bessa wrote:
> Quais são as áreas do código que eu posso desenvolver em módulos, para
> que eu não precise de reinstalar o kernel para cada modificação minha?

"quase tudo" seria uma resposta ruim mas válida, já que o código do
módulo pode fazer qualquer coisa com a máquina. Mas, claro, entre
ser _possível_ fazer, e ser _aconselhável_ fazer, a distância é
bem grande.  :)

As áreas que possuem uma API para registro e remoção de interfaces
(drivers, protocolos de rede, char/block devices, e muitas outras)
são perfeitos para implementar como módulos.

Mas pra que se limitar a isso? Basta usar um emulador ou máquina
virtual, como você já fazia com seu mini-SO.

Se com seu mini-SO você tem experiência com assembly e detalhes de
funcionamento do hardware, você pode tentar acompanhar como o processo
de boot acontece. Você pode começar em arch/x86/kernel/head_64.S
ou head_32.S. O código nesses arquivos faz algum setup e pula para
x86_64_start_kernel()/i386_start_kernel().

-- 
Eduardo



Mais detalhes sobre a lista de discussão kernel-br