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