Como o mkswap funciona? O que está no cabeçalho de swap que ele cria?

3

Eu estou olhando para o mkswap e tentando entender exatamente como funciona. Pelo que entendi, ele configura o espaço de troca em uma partição, criando um cabeçalho de troca. Quão grande é esse cabeçalho de troca? É um bloco? Ou é sempre um tamanho consistente?

Eu tentei procurar pelo código-fonte do mkswap.c, mas meu conhecimento de C não é suficiente para compreendê-lo. Especificamente, eu acho que a linha a seguir escreve o cabeçalho de troca:

strncpy((char*)signature_page+PAGE_SIZE-10,"SWAP-SPACE",10);
    
por curious_george 29.08.2015 / 02:45

1 resposta

5

Eu posso ver que "Understanding the Linux Kernel" de O'Reilly, de Mssrs Bovet e Cesati, página 714 (Swap Area), fornece uma resposta a essa pergunta. Parafraseando, o swap_header é composto de duas estruturas, "info" e "magic". O código que colei acima se refere à parte mágica - ele literalmente escreve "SWAP-SPACE" como os 10 caracteres finais da primeira página (em algumas versões é "SWAPSPACE2").

A estrutura da informação começa após os primeiros 1024 bytes e possui vários campos para descrever o mecanismo de troca.

    
por 29.08.2015 / 04:02

Tags