¿Cómo acceder al espacio del núcleo desde el espacio del usuario?

¿Cómo exactamente se diferencia la memoria del usuario y la memoria del kernel dentro del kernel de Linux (en términos de dar seguridad al espacio del kernel)?

¿Cuáles son las diferentes formas en que puedo escribir en el espacio de direcciones del núcleo desde el espacio del usuario?

Una forma que sé es a través de una llamada al sistema. Hay varias llamadas al sistema que podemos usar, pero al final son todas llamadas al sistema. Incluso en las llamadas al sistema, enviamos datos al espacio del núcleo, donde este (controlador o módulo respectivo) llama a funciones como copy_from_user () para copiar datos del espacio del usuario al espacio del núcleo. Aquí exactamente no estamos escribiendo en el espacio de direcciones. solo estamos pasando un puntero de usuario que contiene los datos que deben copiarse en las memorias intermedias del núcleo.

Mi pregunta, ¿hay alguna forma de acceder a una dirección física que esté presente en el espacio del kernel y realizar operaciones en ella?

Segundo, Aparte de las llamadas al sistema, ¿hay alguna otra forma en que pueda escribir en el espacio del kernel desde una aplicación de usuario?

Me referí a esteenlac de stackoverflow. Pero creo que mi pregunta no se responde allí y es desde una perspectiva diferente. Por eso pensé en hacer una pregunta diferente.

Por favor comparta su conocimiento ... Gracias.

Respuestas a la pregunta(4)

Su respuesta a la pregunta