Eu sou um estudante interessado em trabalhar em Gerenciamento de Memória, particularmente o componente de substituição de página do kernel do linux.
Quais são os diferentes guias que podem me ajudar a começar a entender a fonte do kernel?
Tentei ler o livro Entendendo o Linux Virtual Memory Manager, de Mel Gorman, e Entendendo o Linux Kernel, de Cesati e Bovet, mas eles não explicam o fluxo de controle através do código. Eles acabam explicando várias estruturas de dados usadas e o trabalho que várias funções executam. Isso torna o código mais confuso.
Meu projeto trata de ajustar o algoritmo de substituição de página em um kernel convencional e analisar seu desempenho para um conjunto de cargas de trabalho. Existe uma versão do kernel do linux que seria mais fácil de entender (se não o kernel do linux-2.6.xx)?
fonte
Respostas:
Concentre-se nas estruturas de dados . Entender as estruturas de dados geralmente é mais importante que o código.
Se você apenas mostra estruturas de dados, mas não possui código, ainda obtém uma visão geral do sistema.
Vice-versa, se mostrado apenas código, mas não estruturas de dados, é muito difícil entender o sistema.
fonte
Iniciantes no Kernel é muito bom, eu acho
Há muitas pessoas interessadas em aprender sobre como o kernel funciona, acho que você pode aprender uma coisa ou duas por lá
fonte
A opção depurador pode ser útil.
Mais algumas coisas que podem ser feitas após a criação do kernel com a opção depurador é escrever alguns aplicativos de teste de amostra chamando várias chamadas do sistema que invocam o kernel e você pode percorrer um pedaço de código do kernel por vez e entender sua implementação.
fonte
Na seção Sistemas operacionais do artigo, O que todo especialista em ciência da computação deve saber , Matt Might recomendou o Linux Kernel Development by Love . Embora este seja um tópico avançado, o livro está muito bem escrito.
fonte
Uma maneira de aprender uma base de código complexa é executá-la em um depurador e ver para onde as coisas o levam. Para Linux, existe o Linux Kernel Debugger .
fonte