从哪里开始使用Linux内核模块?

有一点背景,我是目前在操作系统类中的CMPE学生。 我有一些C编程的基本知识,但对C ++更为适应(大约3个学期)。 除此之外,从来没有任何其他正式的编码培训。 另外,我对Linux环境有了基本的了解。

我正在开发一个项目,需要我和我的团队编写一个可以执行以下操作的Linux内核模块:

  • 通过将接收到的数据打印到内核日志中来回应用户级进程传递的数据
  • 能够将数据从一个用户进程传递到另一个用户进程。
  • 必须能够使用内核模块作为进程间通信抽象。 模块应该提供发送者向其发送数据但没有接收者正在等待的情况。模块必须涵盖接收者请求数据但没有可用数据的情况。
  • 模块必须涵盖接收器请求数据但没有可用数据的情况。
  • 必须是模块缓冲区容量的限制。
  • 现在我不知道这对有编程背景的人来说有多困难,但对于我这个职位的人来说,这似乎是一项不可能完成的任务。

    以下是我迄今为止所做的:

  • 编译,编译,插入和删除基本的“hello world”linux内核模块成功
  • 阅读“Linux内核模块编程指南”的前4或5章
  • 阅读一些stackoverflow帖子,其中没有一个似乎能够指引我到我需要去的地方。
  • 所以最后这是我的问题:有人可以请我指出我需要的方向吗? 我甚至不知道要在哪里找到用于读取用户级过程数据的命令,而且我需要某个地方才能启动我。 TLPD对于这个主题的洞察力非常好,但并没有帮助我达到我将有一个可行的项目上交的地步。过去,我会从阅读源代码和逆向工程学习中学习,是否有我可以在任何地方找到那样的东西? 任何和所有的帮助表示赞赏。

    -将


    我发现Linux内核模块编程指南是一个很好的资源。 从它的声音来看,像角色设备这样的东西可能最适合您的用途,但我不确定您是否有其他限制。

    我可能考虑的另一个方向(尽管这可能是一个不好的路径)是在Linux内核中查看具有类似功能的内核模块的示例。 我没有一个很好的例子,但也许通过/drivers/char/查看。


    你所描述的与管道非常相似。

    阅读Linux设备驱动程序的第三章。 (但是不要复制scull管道的例子...)

    链接地址: http://www.djcxy.com/p/87885.html

    上一篇: Where to start with Linux Kernel Modules?

    下一篇: Writing to eventfd from kernel module