Non so molto sul kernel Linux e ho alcune domande.
Qual è lo scopo principale di separare la memoria del kernel dalla memoria dello spazio utente? Per assicurarsi che un'applicazione utente non possa fare nulla di male al kernel?
Quanti modi ci sono per un'applicazione a livello utente per trasferire il controllo al kernel? Quello che posso inventare include (1) invocare una chiamata di sistema, (2) mappare la memoria al kernel (ma penso che mmap () sia anche una chiamata di sistema) e (3) caricare un modulo del kernel (ma immagino lsmod invoca anche alcune chiamate di sistema). Ho ragione? Ci sono altri modi in cui mi sono perso?
Quanti modi per attaccare il kernel? Posso avere alcuni brevi dettagli su di loro?
Se ottengo il privilegio di root, significa che controllo completamente il kernel? Vale a dire, posso fare quello che voglio con il kernel e l'hardware? O ho ancora un potere limitato sul kernel?
Lo apprezzerei molto se qualcuno potesse aiutarmi a capire la risposta a queste domande.