Como posso aprender o propósito dos vários processos do kernel?

1

(relacionado: O que os colchetes em torno dos processos significam? )

Eu gostaria de realmente entender o que estou vendo melhor. Eu prefiro não precisar cavar o código-fonte real do kernel apenas para um rápido entendimento.

Por exemplo, eu procurei kacpid com inicialmente muito pouco sucesso. Eventualmente eu descobri que é o daemon ACPI do kernel, e ler na página da Wikipedia para ACPI esclareceu em geral o que esse processo é tudo sobre.

O que eu adoraria seria uma série de definições simples , de modo que pesquisar kacpid me desse algo como:

kacpid: Stands for kernel ACPI daemon. ACPI is the Advanced Configuration and Power Interface, a set of standards relating to handling of various "states" including sleep, power off, hibernate; and also states relating to CPU power saving.

Agora, estou tentando pesquisar kblockd e todos os resultados do Google mostram que há pessoas com problemas para ficar sem memória, o que não é muito bom para entender por que esse processo existe.

Eu poderia perguntar "O que é kblockd " e estou interessado nisso, mas:

Dada a vasta quantidade de documentação on-line e off-line relacionada ao Linux (man pages, páginas de informações, especificações POSIX, etc.), não existe uma solução padrão para o problema geral de aprender o que vários processos do kernel significam , e o que eles estão fazendo? Qual é essa solução padrão?

    
por Wildcard 14.06.2016 / 06:11

2 respostas

2

Não há repositório único de documentação sobre encadeamentos do kernel do Linux. Alguma documentação básica do kernel Linux existe no diretório Documentation , mas não existe uma parte específica sobre os encadeamentos do kernel ( alguns tópicos são mencionados de passagem na documentação do recurso que eles participam). Além disso, a (desculpa para) documentação consiste, em ordem decrescente de acessibilidade, dos artigos do LWN , o código-fonte, e o Arquivos LKML . A filosofia geral da documentação do kernel do Linux é que, se você não consegue ler o código em C fluentemente e não está preparado para gastar algum tempo pesquisando discussões por email, você não merece entender o que o kernel faz.

A maneira mais fácil de encontrar informações sobre um segmento pelo nome é pesquisar o nome na origem do kernel . Por exemplo, kblockd é criado em blk-core.c . É uma fila de trabalho . Um pouco de pesquisa LKML leva você ao seu início com kblockd.patch . Ele lida com solicitações assíncronas (é o que uma fila de trabalho faz), especificamente solicitações para bloquear dispositivos (ou seja, discos e outros).

    
por 15.06.2016 / 02:28
-1

Você já tentou

x="kblockd"
man -k "$x"
locate "$x"
for i in $(locate "$x") ; do
    dpkg -S "$i"
done

Isso produzirá uma lista de pacotes relacionados ao seu " object ". Leia man dpkg para ver como obter uma lista de arquivos em um pacote.

    
por 14.06.2016 / 23:04