【问题标题】:Develop an application that communicates with kernel开发与内核通信的应用程序
【发布时间】:2012-08-24 09:37:59
【问题描述】:

我正在开发一个用于执行链表操作的应用程序(用户空间)。

我想开发一个具有链表操作功能的内核模块(A)。并且应用程序(用户空间)获取一些输入值进行处理,这些值应该通过 kernelmodule(A) 中的函数进行处理。

  1. 如何将值从用户空间输入到内核模块。
  2. 如何将内核模块 (A) 的结果发送到我的用户空间应用程序?
  3. 如何从应用程序调用内核模块 (A) 中的函数和变量。

我的应用程序可以是c程序吗?

【问题讨论】:

  • 是的unwind。我是新手。我不能向我的主人寻求帮助。我需要完成任务

标签: c linux kernel kernel-module


【解决方案1】:

你可以创建一个字符驱动接口来向内核空间发送值,使用ioctl函数将用户空间数据指针发送到内核空间。在内核空间使用 copy_from_user() 将用户数据复制到内核空间。

链表操作的结果可以是成功也可以是失败,可以作为内核ioctl函数的返回值返回

对于调用函数,您可以发送信息以识别要调用的函数,如第一段所述

【讨论】:

  • dragonyear 请创建一些非常简单的程序来演示这一点。我通过网络搜索,我找不到。请帮帮我。我是新手。
  • 值得指出的是,ioctl()s 并不是唯一的方法(甚至不是最好的方法)。您可以读取/写入设备节点或(这通常是最好和最简单的方法)使用 netlink 套接字。
猜你喜欢
  • 2014-06-28
  • 2016-04-25
  • 1970-01-01
  • 2013-01-17
  • 1970-01-01
  • 2011-12-30
  • 2022-06-25
  • 2012-04-21
  • 1970-01-01
相关资源
最近更新 更多