Linux应用层与内核层交互的几种方式

1)用户程序通过调用KERNEL系统接口, 即通过系统调用的方式,触发与内核的通信。Linux系统下,设备即文件,也因此大部分设备驱动程序都实现了标准的系统接口,如open(),read,write, ioctl(), mmap()等等。
(2)通过proc文件系统进行通信。很多内核程序细节,如中断等,都在proc/目录下有所体现。proc存在提供了一种便捷的用户空间和内核空间的交互方式;
(3)mmap共享内存机制。Linux通过mmap的把内核中特定部分的内存空间映射到用户级程序的内存空间去,从而提供了用户程序对内存直接访问的能力。该方式尤其适合在那些内核和用户空间需要快速大量交互数据的情况下。
(4)内核程序使用信号通知应用程序。信号在内核里的用途主要集中在通知用户程序出现重大错误,强行杀死当前进程,这时内核通过发送SIGKILL信号通知进程终止。
(5)从内核空间调用用户程序

版权声明:本文为CSDN博主「Smith先生」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/acs713/article/details/78887049

你可能感兴趣的:(LINUX驱动开发)