在Linux内核中,用户内存和内核内存如何区分(就内核空间安全性而言)?
从用户空间写入内核地址空间有哪些不同的方法?
我知道的一种方法是通过系统调用实现的。我们可以使用多个系统调用,但最终它们都是系统调用。即使在系统调用中,我们也会将数据发送到内核空间,在那里(驱动程序或相应的模块)调用诸如copy_from_user()之类的函数,将数据从用户空间复制到内核空间。这里我们并没有直接写入地址空间,我们只是传递一个包含需要复制到内核缓冲区中的数据的用户指针。
我的问题是是否有任何方法可以访问位于内核空间中的物理地址并对其执行操作?
其次,除了系统调用之外,从用户应用程序写入内核空间还有其他方式吗?
我参考了stackoverflow上的链接。但我认为我的问题在那里没有得到解答,并且来自不同的角度。因此,我想问一个不同的问题。
请分享您的知识...谢谢。