O site da communidade Linux kernel newbies em português.

Como eu compilo um kernel para diferentes arquitecturas (Cross Compilation)?

O que é Cross Compilation?

Cross Compilation, ou compilações entre e para diferentes arquitecturas, é quando um compilador produz um executável para correr num sistema com uma plataforma ou arquitectura diferente daquela presente no computador onde foi compilado. Um exemplo prático.

Exemplo de vida real

Como eu testo kernels remotos sem instalação?

Correr o kernel sem disco rígido: Introdução

Geralmente é muito útil testar as compilações do kernel sem ter que o instalar num disco rígido e reiniciar o computador para iniciar com esse novo kernel que foi compilado. Arrancar o computador através de um kernel localizado num computador remoto (servidor), é algo que acho muito útil.

Oops

Quem disse que o Linux não trava ?? Que atire a primeira pedra quem nunca viu ao menos um kernel panic na tela ? Pois bem, quando um erro grave ocorre no sistema, entre outras coisas que o kernel faz uma delas é exibir no terminal e/ou sistema de log, uma mensagem bastante conhecida por quem já passou por isso, a famosa mensagem de Oops. Trata-se de um dump do estado do CPU e da pillha do Kernel no momento em que o problema ocorreu. A mensagem de Oops mais conhecida é a que vem acompanhada de um kernel panic.

Por onde eu começo?

Essa é uma pergunta comum feita por newbies é "Eu acabei de desempacotar esse tarball enorme, e gostaria de ajudar, mas eu não sei por onde começar!".

Deparar com uma quantidade enorme de código fonte, pode parecer assustador mas saiba que pouquíssimos desenvolvedores entendem todas as áreas do fonte do kernel.

As pessoas se especializam. Se você se interessa por TCP/IP, não precisará ler os fontes sobre sistemas de arquivo. Entenda em que você quer trabalhar e foque-se nisso.

Pra que servem as várias árvores do kernel?

Árvores normalmente são coleções de patches que geralmente são focadas em atender uma necessidade ou interesse particular. Elas ajudam o processo de desenvolvimento do kernel provendo 'lugares' para que trabalhos sejam desenvolvidos, e eventualmente seja promovido de árvore para árvore, caminhando para uma eventual inclusão na linha principal.

2.6.X e 2.6.X-rcY

Como a get_current() funciona?

  1. static inline struct task_struct * get_current(void)
  2. {
  3. struct task_struct *current;
  4. __asm__("andl %%esp,%0; ":"=r" (current) : "0" (~8191UL));
  5. return current;
  6. }

get_current() é uma rotina para conceder acesso para a estrutura task_struct da tarefa que está atualmente em execução.

Ele usa frequentemente assembly inline características do GCC, para realizar esta tarefa, conforme a seguir:

  1. __asm__(

Entrevista com Eduardo Habkost

A comunidade kernelnewbies-br volta a suas atividades e com grande prazer realizando uma série de entrevistas com kernel hackers brasileiros, envolvidos com projetos interessantes e que tem muito a nos ensinar. Nesta primeira entrevista com Eduardo Habkost pudemos falar um pouco sobre virtualização, KVM, detalhes e desafios no desenvolvimento de uma plataforma de virtualização.

Usando o quilt

O quilt é uma ferramenta para gerenciamento de pilhas de patches; é muito usado por desenvolvedores do kernel para manter e gerar patches para serem enviados.

Tem as seguintes vantagens:

  • Fácil de usar
  • Curva de aprendizado suave
  • Feito com os procedimentos e formatos usados no desenvolvimento do Kernel em mente

Git e o Kernel Linux

Git é um sistema de controle de versões focado em velocidade, escalabilidade e usabilidade para projetos grandes. Além disto, o git oferece um conjunto de pequenos comandos que facilitam o gerenciamento do projeto. Escrito em C e desenvolvido pessoalmente por Linus Torvalds.

Para instalar o aplicativo você pode baixar os fontes neste link, e seguir os passos do arquivo INSTALL que acompanha o software.

Baixando a árvore do Kernel Linux

 

Ferramentas de Trabalho no Kernel

Ao trabalhar com uma base de código fonte tão grande quanto o kernel, certamente é de grande valia ter ferramentas que ajudem a entender como as peças se encaixam. Essa página tem como objetivo fornecer indicações para as ferramentas mais comumente utilizadas para tornar as suas primeiras incursões nas terras do kernel tão produtivas quanto possível.

Editando os Arquivos Fonte do Kernel

Conteúdo sindicalizado