Как точно различается память памяти пользователей и ядер в ядре Linux (с точки зрения обеспечения безопасности для пространства ядра)?
Какими разными способами я могу писать в адресном пространстве ядра из пользовательского пространства?
Один из способов, которым я знаю, - это системный вызов. Существует несколько системных вызовов, которые мы можем использовать, но в конце они все системные вызовы. Даже в системных вызовах мы отправляем данные в пространство ядра, где он (драйвер или соответствующий модуль) вызывает такие функции, как copy_from_user(), для копирования данных из пользовательского пространства в пространство ядра. Здесь мы точно не записываем в адресное пространство. мы просто передаем указатель пользователя, который содержит данные, которые необходимо скопировать в буферы ядра.
Мой вопрос в том, можно ли каким-либо образом получить доступ к физическому адресу, который присутствует в ядре и выполнить на нем операции?
Во-вторых, Помимо системных вызовов есть ли какие-либо другие способы записи в пространство ядра из пользовательского приложения?
Я ссылался на эту ссылку из stackoverflow. Но я думаю, что на мой вопрос нет ответа и с другой точки зрения. Поэтому я подумал задать другой вопрос.
Поделитесь своими знаниями... Спасибо.