关于在内核态、用户态数据通信,其中有一种方式就是直接的在内核态中获取用户态数据信息。应用场景如:在内核态中直接读取磁盘文件信息。 在这样的应用场景下,具体要解决的难点:如何使内核函数中的参数,合法的通过内核的保护模式的安全检查。比如SYSCALL_DEFINE3(open...),SYSCALL_DEFINE3(read....),SYSCALL_DEFINE3(write..)等文件相关的系统调用,在具体使用的时候,涉及的某些指针应该是从用户态传递过来的。而且在相应的系统调用处理流程中,会有相应参数的检查,看时候是传来的用户态合法的参数。具体过程结合2.6.32.24源码分析如下