【发布时间】:2013-10-30 17:02:33
【问题描述】:
一点背景知识,我是一名 CMPE 学生,目前正在学习操作系统课程。我有一些 C 编码的基本知识,但对 C++ 更熟悉(花了大约 3 个学期的时间)。除此之外,从未接受过任何其他正式的编码培训。另外,我对linux环境有了基本的了解。
我正在开展一个项目,该项目需要我和我的团队编写一个可以执行以下操作的 linux 内核模块:
- 通过将接收到的数据打印到内核日志来回显从用户级进程传递的数据
- 能够将数据从一个用户进程传递到另一个用户进程。
- 必须可以将内核模块用作进程间通信抽象。模块应提供发送者向其发送数据但没有接收者等待的情况。模块必须涵盖接收者请求数据但没有可用数据的情况。
- 模块必须涵盖接收方请求数据但没有可用数据的情况。
- 必须是模块中缓冲区容量的限制。
现在我不知道这对于那些有编程背景的人来说有多难,但对于像我这样的人来说,这似乎是一项不可能完成的复杂任务。
这是我到目前为止所做的:
- 已成功编码、编译、插入和删除基本的“hello world”linux 内核模块
- 通读The Linux Kernel Module Programming Guide的前4或5章
- 阅读了一些 stackoverflow 帖子,但似乎没有一个能够将我引导到我需要去的地方。
所以最后这是我的问题:有人可以指出我需要做的方向吗?我什至不知道在哪里可以找到用于读取用户级进程数据的命令,我需要在某个地方开始。 TLPD 非常适合深入了解该主题,但并没有帮助我达到我将有一个可行的项目上交的地步。过去,我会通过阅读源代码和逆向工程来学习,有没有我可以的地方找到类似的东西?感谢您提供任何和所有帮助。
-会
【问题讨论】:
-
您可能希望在 /dev 或其他地方公开一个或多个虚拟文件,并设计一个文件读取和写入该虚拟文件的 API。
-
如果不是因为我不知道这意味着什么,这听起来很棒,哈哈。我想我比我让你相信的更业余一点。你有没有机会把它变成 5 岁的孩子说话?
标签: c linux linux-kernel