No sé mucho sobre el kernel de Linux, y tengo algunas preguntas.
¿Cuál es el propósito principal de separar la memoria del núcleo de la memoria del espacio del usuario? ¿Para asegurarse de que una aplicación de usuario no pueda hacer nada malo al núcleo?
¿De cuántas maneras hay una aplicación de nivel de usuario para transferir el control al kernel? Lo que se me ocurre incluyen (1) invocar una llamada al sistema, (2) asignar memoria al kernel (pero creo que mmap () también es una llamada al sistema) y (3) cargar un módulo del kernel (pero supongo que lsmod también invoca alguna llamada al sistema). ¿Estoy en lo correcto? ¿Hay alguna otra forma que me perdí?
¿Cuántas formas de atacar el núcleo? ¿Puedo tener algunos detalles breves sobre ellos?
Si obtengo el privilegio de root, ¿significa que controlo completamente el kernel? A saber, ¿puedo hacer lo que quiera con el kernel y el hardware? ¿O todavía tengo un poder limitado en el núcleo?
Realmente agradecería que alguien pueda ayudarme a encontrar la respuesta a estas preguntas.