Kernel do Linux

Como visualizar e navegar pelo código-fonte do kernel do Linux?

Como visualizar e navegar pelo código-fonte do kernel do Linux?
O kernel do Linux é o núcleo do sistema operacional (SO) que permite oferecer suporte e gerenciar o hardware, protocolos e muito mais. Neste tutorial, a estrutura do código-fonte do kernel será brevemente explicada. A pasta raiz do kernel localizada em / usr / src /, geralmente / usr / src / linux * contém seu código-fonte como aquele que você pode navegar https: // git.núcleo.org / pub / scm / linux / kernel / git / stable / linux.git / tree /?h = v5.1.3

O diretório de origem contém os seguintes subdiretórios chamados árvore do kernel, aprender a estrutura da árvore do kernel e a função de cada caminho é o primeiro passo para começar a navegar no kernel.

Diretório raiz da árvore do kernel:

Documentação/: documentação fonte do kernel.

LICENÇAS /: Ele contém as licenças a serem aplicadas ao código-fonte do kernel e arquivos-fonte individuais que podem ter licenças diferentes. Dentro deste diretório, você encontrará 3 subdiretórios: preferido (GNU GPL), exceções listado no arquivo COPYING e outro.

arco/: códigos-fonte para arquiteturas específicas (e.g powerpc, x86, etc). Dentro deste diretório você encontrará subdiretórios pertencentes a cada arquitetura suportada, lie i386, sparc, arm, etc.

quadra/: camada de E / S de bloco, contém código para o gerenciamento de dispositivos de bloco (como discos rígidos, DVD, disquetes, etc.) e seus pedidos.

Certs /:
certificados e arquivos de assinatura para habilitar a assinatura de módulo para fazer o kernel carregar módulos assinados, isso pode ser útil para evitar que códigos maliciosos sejam executados com módulos de kernel como rootkits.

Crypto /: API de criptografia. Contém cifras criptográficas que lidam com tarefas criptográficas e de compressão.

motoristas /: Drivers de dispositivo de hardware. Contém código de drivers de dispositivo para suportar hardware, dentro deste diretório você encontrará subdiretórios para cada hardware como vídeo, bluetooth, etc (qualquer hardware suportado).

fs /: código para o sistema de arquivos virtual e sistemas de arquivos adicionais. Este diretório contém o código para suportar, ler e escrever sistemas de arquivos.

incluir/: cabeçalhos de kernel. Este diretório contém cabeçalhos C para arquivos de kernel, como funções para compilar código.

iniciar/: inicialização do kernel. Contém código fonte relacionado à inicialização do kernel. O código-fonte é armazenado em um arquivo chamado  Mainc.c dentro do diretório /iniciar. O código inicializa o kernel e alguns processos iniciais.

ipc /: Comunicação entre processos, como sinais e tubos.

núcleo/: Subsistemas centrais, como o código de manipulação de sinal do planejador, etc.

lib /: rotinas de biblioteca operações de string comuns, operações dependentes de hardware, rotinas de depuração e código de análise de linha de comando.

milímetros/: Gerenciamento de memória e memória virtual. O kernel gerencia tanto o hardware quanto a memória virtual (swap). Este diretório armazena código para o gerenciamento de memória.

internet/: Pilha de rede. Contém código relacionado a protocolos de comunicação como IP, TCP, UP, etc.

amostras /: código de amostra e arquivos de configuração.

scripts /: scripts para construir o kernel.

segurança/: O Linux Security Module (LSM) é uma estrutura para habilitar políticas de segurança para acessar o controle de módulos.

som/: O subsistema de som, aqui você encontrará drivers de som e códigos relacionados a som, como ALSA,


Ferramentas/:
ferramentas para desenvolvimento de kernel compactado, como ACPI, cgroup, ferramentas de teste USB, módulo de teste vhost, ferramentas GPIO, IIO e spi, ferramenta de política de energia Inter entre mais.

usr /: initramfs que enraíza o sistema de arquivos e init no cache de memória do kernel.

virt /: Virtualização, este diretório contém o módulo KVM (Kernel Virtual Machine) para hipervisor.

Estes são os subdiretórios principais da árvore do kernel e suas funções, espero que seja útil para você.

Como usar o Xdotool para estimular cliques do mouse e pressionamentos de tecla no Linux
Xdotool é uma ferramenta de linha de comando gratuita e de código aberto para simular cliques do mouse e pressionamentos de tecla. Este artigo irá cob...
Os 5 principais produtos ergonômicos de mouse de computador para Linux
O uso prolongado do computador causa dor no pulso ou nos dedos? Você está sofrendo de rigidez nas articulações e constantemente precisa apertar as mão...
Como alterar as configurações do mouse e touchpad usando Xinput no Linux
A maioria das distribuições Linux vem com a biblioteca “libinput” por padrão para lidar com eventos de entrada em um sistema. Ele pode processar event...