关于linux模块编程

vvsd2002
关于linux模块编程

最近在做linux内核模块的试验,有几个问题一直没能解决,希望高手指教


    1,在内核模块中有些内核函数可以调用(sys_open("/home/wsd/temp.txt", O_RDONLY, O_SYNC);),有些就不可以(i=sys_read(fh,buffer,5);),不知道什么原因。

    2.在调用sys_open()的时候,老是返回错误。

   3.调用sys_read()的时候采用make编译能通过 ,可以调用insmod挂载的时候却显示有不识别的符号。

    4.我想在内核模块中创建一个系统进程,但是要周期性的运行。调用kernel_thread()启动线程后,不知道怎么周期性的放弃cpu(有没有替代sleep()的内核函数?)

    5.在我用sys_read()的时候,调用insmod挂载失败,但是 cat kallsyms  |grep sys_read 时发现sys_read的确在内核的导出符号表里

    6.内核线程中可不可以使用socket?如果可以,如何使用?

    7.如果需要某个内核功能,去哪查有哪些可以调用的内核函数?怎么查?


谢谢。。。