GNU/Linux
 
 
Kernel
(GNU/Linux)

Kernel é o coração de um Sistema Operacional. Ele está ligado diretamente ao hardware.



Informações Importantes
# ls /lib/modules/`uname -r`/ (local onde fica os módulos e/ou drivers do Kernel)
# cat /lib/modules/`uname -r`/modules.dep (arquivo que contém detalhes das dependências dos módulos do Kernel)
# vi /etc/modules.conf (dentro desse arquivo se pode fazer nome diferente aos modulos/drivers/dispositivo. Ex: "alias eth0 3c59cx". Nesse caso o eth0 terá o apelido de 3c59cx)
echo $MODPATH (variável de ambiente que pode ser usada para a procura de diretórios dos módulos instaláveis/carregáveis do Kernel)
boot loader; kernel loaded; init; rc.sysinit; runlevel scripts (ordem dos processo durante o boot)
make menuconfig ; make clean; make dep, make bzImage (ordem para a compilação de um novo Kernel)
/proc/cmdline (arquivo que contém parâmetros passados para o kernel no boot do sistema [mas especificamente no bootloader/grup/lilo]).
/proc/filesystems (arquivo que contém a lista dos sistemas de arquivos que podem estar atualmente montados no sistema)
/proc/interrupts (mostra as IRQs usadas pelos hardwares)
/proc/cpuinfo
/proc/meminfo
/proc/swaps (swapon -s)
/proc/modules (idem ao "lsmod")
/proc/mdstat (RAID)
/proc/bus/usb/devices (USB)





Comandos
# depmod (gera o arquivo "/lib/modules/`uname -r`/modules.dep" que contém detalhes das dependências dos módulos do Kernel. Esse comando cria uma lista de dependência dos módulos, determina qual símbolos são exportados e quais são necessitados -> símbolos=serviços. As dependencias de módules na maioria das vezes são outros módulos. O comando "modprobe" usa esse arquivo "modules.dep" para resolve as dependências. Módulos do Kernel podem prover serviços para outros módulos, se um segundo módulo necessitar desses serviços, este segundo módulo precisará do primeiro módulo. O comando "depmod" cria essa lista de dependência dos módulos. O comando "depmod" é muito usado quando um módulo compilado é movido para "/lib/modules/$(uname -r)/", mas ao se usar comandos com "modprobe new_module" não é achado esse novo módula. Assim se usa o "depmod" para fazer as respectiva referências e dependências)
# modprobe (adiciona e remove módulos do Kernel)
# modprobe -a (carrega todos os módulos ao invés de parar depois do carregamento com sucesso do 1º módulo)
# modprobe 8139too dev=eth0; modprobe ne2k-pci dev=eth1 (adiciona módulos/drivers de rede especificando os dispositivos)
# modinfo (comando para extrair informações de módulos)
# lsmod
# /proc/modules (idem)
# insmod
# rmmod
# pcimodules
# make modules (depois de compilar um novo Kernel 2.6, esse comando é usado que os módulos do Kernel também serão compilados)
# make menuconfig (quando é compilado um novo Kernel, esse comando é usado para criar o arquivo de configuração ".config")
# make config (idem)
# make xconfig (idem)
# make dep (cria as informações de dependências necessários)
# make modules_install





PARÂMENTROS QUE PODEM SER PASSADOS PARA O KERNEL O BOOT
bash=/bin/bash
bash=/bin/bash rw
nosmp (faz com que o kernel NÃO trabalhe com SMP [multiplos processadores], ou seja, irá usar somente uma CPU)
cpucount=0 (idem)
cpucount=1 (faz com que o kernel reconheça somente uma CPU, mas trabalhar no modo SMP [multiplos processadores])









PATCH KERNEL
(GNU/Linux)


Arquivo de configuração
patch --dry-run (testa se um patch para o Kernel irá funcionar antes de aplicá-lo efetivamente)
patch -R (remove um patch aplicado, ou seja, restaura o Kernel anterior sem patch)
# cd /usr/src/linux; patch -p1 < /tmp/foopatch (aplica o patch "/tmp/foopatch" no Kernel atual)




cd /usr/src/linux; patch -p1 < /tmp/foopatch





Módulos
(GNU/Linux)

Módulos.



Listar os módulos
# lsmod módulo


Adicionar um módulo
# insmod módulo
# modprobe módulo


Remover um módulo
# rmmod módulo
# modprobe -r módulo


Adicionar módulos durante o boot (inicialização)
# vi /etc/modules
módulo (basta colocar dentro desse arquivo o nome dos módulos que se deseja subir durante o boot. Um módulo por linha)


Habilitando rede






AGUARDE
PÁGINA EM CONSTRUÇÃO






Referências Bibliográgicas

 
 


Hugo Azevedo de Jesus
ETI - Especialista em Tecnologia da Informação