一点背景知识,我是一名 CMPE 学生,目前正在学习操作系统课程。我有一些 C 编码的基本知识,但对 C++ 更熟悉(花了大约 3 个学期的时间)。除此之外,从未接受过任何其他正式的编码培训。另外,我对linux环境有了基本的了解。
我正在做一个项目,该项目需要我和我的团队编写一个可以执行以下操作的 linux 内核模块:
- 通过将接收到的数据打印到内核日志来回显从用户级进程传递的数据
- 能够将数据从一个用户进程传递到另一个用户进程。
- 必须可以将内核模块用作进程间通信抽象。模块应提供发送者向其发布数据但没有接收者等待的情况。模块必须涵盖接收者请求数据但没有可用数据的情况。
- 模块必须涵盖接收方请求数据但没有可用数据的情况。
- 必须是模块中缓冲区容量的限制。
现在我不知道对于那些有编程背景的人来说这似乎有多困难,但对于我这个职位的人来说,这似乎是一项不可能完成的复杂任务。
这是我到目前为止所做的:
- 成功编码、编译、插入和删除基本的“hello world”linux内核模块
- 通读Linux 内核模块编程指南的前 4 或 5 章
- 阅读一些 stackoverflow 帖子,似乎没有一个能够将我引导到我需要去的地方。
所以最后这是我的问题:有人可以指出我需要这样做的方向吗?我什至不知道在哪里可以找到用于读取用户级进程数据的命令,我需要在某个地方开始。TLPD 非常适合深入了解该主题,但并没有帮助我达到我将有一个可行的项目上交的地步。过去,我会通过阅读源代码和逆向工程来学习,有没有我可以的地方找到类似的东西?任何和所有的帮助表示赞赏。
-将要