基本上,我想在 Linux 内核中实现自己的信号量,并能够在用户程序中使用它。
我在实现内核代码方面取得了一些进展,但我不知道如何使信号量类型和我编写的函数可供用户程序使用。
用户程序需要访问我的信号量类型及其功能(等待、信号...)
有什么办法可以让使用我的代码编译的内核的 Linux 能够通过包含头文件来使用我的信号量吗?
对于 Linux 内核,我不是专业人士,所以如果我犯了任何明显的错误,请随时指出。谢谢。 我使用的内核版本是2.6.32。
最佳答案
我建议研究用户空间库,了解如何为用户空间程序实现信号量。
信号量仅在较旧的 2.6.16 内核中可用,因为互斥锁出现在该版本的内核之后。只有以前的实现使用了信号量。较新的代码应该使用互斥体,而互斥体仅在进程上下文中使用。您可能需要查看以下 header 、结构体和 api。
#include <linux/mutex.h>
struct mutex
mutex_{lock,trylock,unlock,lock_interruptable}()
您也可能想看看semaphore.c以便实现。
关于linux-kernel - 如何向linux内核添加自定义信号量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27276139/