kmallc e vmalloc retornam endereço lógico?
-
21-12-2019 - |
Pergunta
Embora já existam muitos threads em execução no kmalloc e no vmalloc, não obtive minha resposta exata, por isso estou colocando-a aqui.
Até onde sei,
kmalloc :É a API do kernel que aloca memória fisicamente e virtualmente contígua.
vmalloc :É a API do kernel que aloca memória fisicamente não contígua, mas virtualmente contígua.
Agora minha pergunta é:Em ambos os casos (kmalloc ou vmalloc), o endereço ou o ponteiro retornado por ambas as APIs está correto?
O gerenciamento de memória sempre foi uma parte cinzenta para mim no kernel do Linux, então corrija-me se meu entendimento estiver errado.
Solução
Sim, o ponteiro pode ser desreferenciado no seu código para acessar a memória alocada.
Essas funções que retornam outro tipo de referência de memória não retornam void*
Eu penso.Eles geralmente retornam unsigned long
ou tipos digitados.