módulo do kernel: conjunto de bits executáveis? comprimir com xz?

2

Eu escrevi / ajustei um módulo de kernel personalizado e o instalei.

Funciona como esperado, mas notei que outros módulos do kernel no meu sistema são compactados com xz e possuem permissões 0444, enquanto que eu não o compactava e instalei-o com o conjunto de bits executável (0555 permissões). / p>

$ stat --format=%A /path/to/my-module.ko
-r-xr-xr-x

$ stat --format=%A /path/to/other-module.ko.xz
-r--r--r--

Isso tem alguma implicação - desempenho, segurança ou outro? Eu pretendo compactar o meu e definir as permissões para combinar com o que outros módulos estão usando, mas não sei a motivação subjacente para a compactação e as permissões que eles estão usando.

    
por ivan 24.05.2018 / 14:48

1 resposta

3

Sobre permissões:

Não há necessidade de definir bit executável ou sinalizador de gravação para o módulo. O arquivo de módulo deve ser legível e é isso. insmod , modinfo , modprobe ou algo mais precisam ler o arquivo do módulo. Permissões de leitura para o grupo ou outros podem ser necessárias para depurar o módulo via objdump , nm , ou seja,

Não há nenhum motivo real para configurar o bit executável para o módulo para ninguém.

Sobre a compactação:

O kernel do Linux foi incorporado à implementação de compactação XZ. O kernel do Linux pode ler com êxito (descompactar anteriormente) initrd image, módulos do kernel e até mesmo ele mesmo ( vmlinuz last z no nome do arquivo do kernel informa que a imagem do kernel está compactada).

Eu não sei qual distro você usa. Mas se você tiver comprimido os módulos do kernel, então são regras da sua distro. É claro que os módulos compactados têm um tamanho menor em comparação com os módulos não compactados, mas se o módulo do kernel é compilado sem os símbolos de depuração, a diferença de tamanho entre os módulos compactados e descompactados do kernel será pequena. Por outro lado, é melhor usar a compactação e economizar espaço para outra coisa, em vez de gastá-la apenas para armazenar uma grande quantidade de módulos, considerando que a grande quantidade dela não será necessária.

    
por 24.05.2018 / 23:09