一些背景信息,我是一名CMPE学生,目前在操作系统课程中。我有一些C编码的基础知识,但更熟悉C++(已经学了大约3个学期)。除此之外,我从未接受过任何其他形式的编码培训。此外,我对Linux环境有基本的理解。
我正在开展一个项目,需要我和我的团队编写一个Linux内核模块,可以实现以下功能:
- 通过将接收到的数据打印到内核日志来回显由用户级进程传递的数据 - 能够将数据从一个用户进程传递到另一个用户进程。 - 必须能够将内核模块用作进程间通信抽象。模块应提供这样的情况:发送者向其发布数据,但没有接收者在等待。模块必须涵盖这样的情况:接收者请求数据,但没有可用的数据。 - 模块必须涵盖这样的情况:接收者请求数据,但没有可用的数据。 - 在您的模块中必须有缓冲容量限制。
现在我不知道对于具有编程背景的人来说,这似乎有多难,但对于我这样的人来说,这似乎是一个不可能完成的复杂任务。
到目前为止,我已经完成了以下工作:
我正在开展一个项目,需要我和我的团队编写一个Linux内核模块,可以实现以下功能:
- 通过将接收到的数据打印到内核日志来回显由用户级进程传递的数据 - 能够将数据从一个用户进程传递到另一个用户进程。 - 必须能够将内核模块用作进程间通信抽象。模块应提供这样的情况:发送者向其发布数据,但没有接收者在等待。模块必须涵盖这样的情况:接收者请求数据,但没有可用的数据。 - 模块必须涵盖这样的情况:接收者请求数据,但没有可用的数据。 - 在您的模块中必须有缓冲容量限制。
现在我不知道对于具有编程背景的人来说,这似乎有多难,但对于我这样的人来说,这似乎是一个不可能完成的复杂任务。
到目前为止,我已经完成了以下工作:
- 成功编写、编译、插入和删除了基本的“hello world”Linux内核模块
- 阅读了Linux内核模块编程指南的前4到5章
- 阅读了几篇stackoverflow帖子,但没有一篇能够指导我去哪里。
最后我的问题是:有人能指引我应该怎么做吗?我甚至不知道从哪里找到用于读取用户级进程数据的命令,我需要一个起点。TLPD在这个主题上提供了很好的见解,但它不能帮助我获得可操作的项目以提交。过去,我会通过阅读源代码和反向工程来学习,有没有任何地方可以找到类似的东西?感激任何和所有的帮助。
-威尔