gpt4 book ai didi

c - 从哪里开始学习 Linux 内核模块?

转载 作者:IT王子 更新时间:2023-10-29 01:19:21 27 4
gpt4 key购买 nike

一些背景知识,我是一名 CMPE 学生,目前正在上操作系统课。我有一些 C 编码的基本知识,但更熟悉 C++(大约学习了 3 个学期)。除此之外,从未接受过任何其他正式的编码培训。此外,我对 linux 环境也有了基本的了解。

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

  • 通过将接收到的数据打印到内核日志来回应从用户级进程传递的数据
  • 能够将数据从一个用户进程传递到另一个用户进程。
  • 必须能够将内核模块用作进程间通信抽象。模块应提供发送方向其发送数据但没有接收方等待的情况。模块必须涵盖接收方请求数据但没有可用数据的情况。
  • 模块必须涵盖接收方请求数据但没有可用数据的情况。
  • 必须是您模块中缓冲容量的限制。

现在我不知道这对于那些有编程背景的人来说有多难,但对于像我这样的人来说这似乎是一项不可能完成的复杂任务。

这是我到目前为止所做的:

  1. 成功编码、编译、插入和删除了基本的“hello world”linux 内核模块
  2. 通读 The Linux Kernel Module Programming Guide 的前 4 或 5 章
  3. 通读了几篇 stackoverflow 帖子,似乎没有一篇能够指引我到我需要去的地方。

所以最后这是我的问题:有人可以指出我需要做的方向吗?我什至不知道在哪里可以找到用于读取用户级进程数据的命令,我需要从某个地方开始。 TLPD 非常适合深入了解该主题,但并不能帮助我达到可以上交的可行项目的地步。过去,我会通过阅读源代码和逆向工程来学习,有没有我可以的地方找到类似的东西?感谢您提供任何帮助。

-将

最佳答案

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

我可能会考虑的另一个方向(虽然这可能是一条糟糕的道路)是查看 Linux 内核中具有类似功能的内核模块的示例。我没有一个很好的例子,但也许可以通过 /drivers/char/ 查看。

关于c - 从哪里开始学习 Linux 内核模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19667624/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com