Não sei muito sobre o kernel do Linux e tenho algumas perguntas.
Qual é o principal objetivo de separar a memória do kernel da memória do espaço do usuário? Para garantir que um aplicativo de usuário não possa fazer nada de errado com o kernel?
Quantas maneiras existem para um aplicativo no nível do usuário transferir o controle para o kernel? O que posso sugerir é: (1) chamar uma chamada do sistema, (2) mapear a memória para o kernel (mas acho que mmap () também é uma chamada do sistema) e (3) carregar um módulo do kernel (mas acho que o lsmod também chama alguma chamada do sistema). Estou correcto? Existem outras maneiras que eu perdi?
Quantas maneiras de atacar o kernel? Posso ter alguns breves detalhes sobre eles?
Se eu receber o privilégio de root, isso significa que eu controlo completamente o kernel? Ou seja, posso fazer o que quiser com o kernel e o hardware? Ou ainda tenho poder limitado no kernel?
Eu realmente aprecio isso se alguém puder me ajudar a descobrir a resposta para essas perguntas.