Documente Academic
Documente Profesional
Documente Cultură
Contedo da apresentao
Kernel 3.X.XX
Diretrios e Arquivos
Requisitos de Manipulao
Arquitetura Monoltica
Manipulao da Kernel
Gerenciamento de Tarefas
Modelos de Interrupo
Estados de Tarefas
Gerenciamento de Memria
Paginao
Gerenciamento de Entrada e Sada
O qu tem l dentro?
menuconfig
Arquivo initrd
Instalao da Kernel
Referncias
Espao
Do Usurio
Kernel
VFS
REDE
Energia
Inicializao
EXT2
EXT3
NTFS
Agendamento
De I/O
Timekeeping
CPUSET
EXT4
iso9660
TMPFS
criptografia
Agendamento multicore
ASLR
btrfs
PROC
SYS
SOM
Agendamento singlecore
Paginao Nivel 2 e 3
V4L
Gerenciamento
de Tarefas
Gerenciamento
de Memria
Sistema de Arquivos
IDE
I2C
USB
SCSI
BLOCK
CHAR
SLAB
SWAP
Buddysystem
...
DEP
...
Driver de Dispositivos
Kernel
Camada da BIOS
Hardware
Gerenciamento de Tarefas
Gerenciamento de Tarefas
Agendamento de servios:
Gerenciamento de Tarefas
Modelo de Interrupo
Gerenciamento de Tarefas
Modelo de Interrupo
Instncia de driver
Processo da Kernel
Fila de Tabalho
Arquivo 01
Arquivo 02
Aplicativo
Aplicativo
Kernel
Funo da Kernel
Soft IRQ
Tasklet
Timer
ISR
Espao
Do Usurio
Funo da Kernel
Soft IRQ
Hard IRQ
SA_SHIRQ
Hard IRQ
Kernel
Hardware
Obs.: Programadores de Kernel precisam conhecer o modelo de interrupo para identificar reas
crticas e desenvolver cdigo de forma a proteg-las corretamente.
Gerenciamento de Tarefas
Modelo de Interrupo
Executvel
Fork ()
Clone ()
Executando
Acordando
Dormir
Ocioso
Wait ()
Dormir
Agendador
Dormir
Hibernao
Traar
SIGSTOP
Atual
N/Interropvel
Interrompvel
Wakekill
Traado
Parado
Estados de Repouso
Ativo
Acordar
Acordar, Sinal
Acordar, Sinal
SIGCONT
SIGCONT
Aplicativos e threads da
Kernel passam por diversos
estados.
Compreender os diversos
estados dos servios da
Kernel permite saber 'como'
e 'porqu' fazer um patch
para a Kernel, bem como
permite ter a compreenso
sobre o funcionamento da
Kernel.
Gerenciamento de Tarefas
Modelo de Interrupo
Gerenciamento de Memria
Gerenciamento de Memria
Pgina
(Blocos de Conjunto de Cdigo)
Alocar Memria
Memria Livre
Sistema Parceiro
Pr-inicializar CC
Finalizar CC
Alocador 'SLAB'
Reservar CC
Liberar CC
Objeto (CC)
Aplicativo/
Componente
da Kernel
Gerenciamento de Memria
Paginao
Gerenciamento de Memria
Paginao
Processo B
Espao de
Endereo
Virtual
Espao de
Endereo Fsico
Gerenciamento de Memria
Paginao
A troca permite melhor uso do espao da memria fsica. ao migrar pginas
pouco usadas para armazenamento mais lento e menos necessrias
Memria
Virtual
Mapeamento
de Pginas
Memria
Fsica
SWAPPER / Permutador
Pginas em Disco
Garantidas/Protegidas
Disco
Gerenciamento de Memria
Gerenciamento de Memria
a implementao dessas
funes
depende
da
arquitetura. Em arquiteturas
x86, possvel achar essas
funes
e
smbolos
definidos em:
./linux-source-3.X.XX/arch/x86/include/asm/uaccess.h, com origem em
./linux-source-3.X.XX/arch/x86/lib/usercopy_32.c e usercopy_64.c.
brlix@brlix$ ls -lai
1321328
drwxr-xr-x
brlix brlix
1319023
drwxr-xr-x
59
brlix brlix
1311518
-rw-rr--
brlix brlix
CV-en.odt
1332258
-rw-------
brlix brlix
56 Set 24 14:48
.directory
1853167
drwxr-xr-x
brlix brlix
Epidemus
1349300
drwxr-xr-x
brlix brlix
impressos
1321712
-rw-r--r--
brlix brlix
1337519
-rw-rr--
brlix brlix
1341827
-rw-rr--
brlix brlix
1339328
-rwxr-xr-x
brlix brlix
Camada de Aplicativos
VFS
REDE
ISO 9660
EXT3
NTFS
Agendamento
De I/O
EXT4
CDFS
NFS
criptografia
btrfs
PROC
USBFS
SOM
Sistema de Arquivos
Kernel
V4L
Camada de Abstrao
Camada de Blocos / Controladores de Dispositivos
Kernel
Camada da BIOS
Hardware
LIBNCURSES5-DEV
MAKE
O MAKE pode ser usado para descrever qualquer tarefa em que alguns arquivos
possam ser atualizados automaticamente com os outros, sempre que os outros
mudarem. Para usar o MAKE, necessrio escrever um arquivo chamado
"makefile", que descreve as relaes entre os arquivos em seu programa, e o
estado dos comandos para atualizar cada arquivo.
GCC
KERNEL-PACKAGE
Um pacote Debian de utilitrios para construir uma Kernel Linux. Possui arquivos
.config pr-configurados para diversas arquiteturas. O comando para
compilao e empacotamento make-kpkg est dentro deste pacote.
BUILD-ESSENTIAL
efetuar
INITRAMFS-TOOLS
Referencia
todos
os
pacotes
essenciais
para
construo/manipulao/edio de pacotes para Debian's-Like
KERNEL SOURCE
Manipulao da Kernel
O qu tem l dentro?
Vamos executar
~$ cd /usr/src/linux-source-3.X.XX/
~$ sudo su
~# make menuconfig
Arquivo initrd
Instalao da Kernel
# dpkg -i kernel*.deb
# update-grub
Instalao da Kernel
Referncias
Kernel GitHub
http://www.h-online.com/open/features/Kernel-Log-Coming-in-3-1-Part-1-Networking-1323463.html?page=1
http://www.h-online.com/open/features/Kernel-Log-Coming-in-3-1-Part-2-Storage-and-filesystems-1338160.html
http://www.h-online.com/open/features/Kernel-Log-Coming-in-3-1-Part-3-Architecture-infrastructure-virtualisation-1345178.html
http://www.h-online.com/open/features/Kernel-Log-Coming-in-3-1-Part-4-Drivers-1346605.html
https://github.com/torvalds/linux
http://www.h-online.com/open/news/item/Microsoft-contributes-a-lot-of-changes-to-Linux-kernel-3-0-1280528.html
http://www.h-online.com/open/news/item/Security-breach-at-kernel-org-1334642.html
Referncias
http://packages.ubuntu.com/precise/linux-source-3.2.0
http://packages.qa.debian.org/l/linux-2.6.html
http://www.ibm.com/developerworks/linux/library/l-virtual-filesystem-switch/
http://en.wikipedia.org/wiki/Advanced_Configuration_and_Power_Interface
http://www.makelinux.net/kernel_map/