2014-12-03 74 views
2

基本上我想在Linux內核中實現我自己的信號量並能夠在用戶程序中使用它。如何將自定義信號添加到linux內核?

我已經在實現內核代碼方面取得了一些進展,但是我不知道如何使信號量類型和我寫的函數可用於用戶程序。

用戶程序需要訪問我的信號類型及其功能(等待,信號,...)

有沒有什麼辦法來這讓使用內核Linux的編譯我的代碼會能夠簡單地通過包含頭文件來使用我的信號量?

我不是專業的Linux內核,所以如果我犯了任何明顯的錯誤,請隨時指出。謝謝。 我正在使用的內核版本是2.6.32。

回答

2

我會建議查看用戶空間庫,瞭解用戶空間程序實現的信號量。

信號量只在2.6.16內核的內核中可用,因爲互斥量出現在內核版本之後。只有以前的實現使用了信號量。較新的代碼應該使用互斥鎖,而不是僅在進程上下文中使用互斥鎖。你可能想看看下面的頭文件,struct和api。

#include <linux/mutex.h> 
struct mutex 
mutex_{lock,trylock,unlock,lock_interruptable}() 

另外你可能想看看semaphore.c的實施。

+0

謝謝,我用semaphore.c作爲我自己的信號量的指南。我試圖通過posix semaphore.h文件來查看,這有點太複雜了,但我想我可以再次通過它們。 – AmV 2014-12-03 17:27:42