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