由用户空间主动发起的信息交互
编写自己的系统调用
目前linux大致提供了两百多个标准的系统调用,并且允许我们添加自己的系统调用来实现和内核的信息交互。
编写驱动程序
read, write, ioctl
使用/proc等文件系统
使用mmap
由内核空间主动发起的信息交互
从内核空间调用用户程序
内核中启动用户程序通过execve这个系统调用原型,此时的系统调用发生在内核空间,而一般的系统调用在用户空间进行。
利用brk系统调用来导出内核数据
使用信号
netlink
对于用户空间,使用netlink比较简单,因为和使用socket非常的类似
内核空间对netlink的使用最重要的是create函数