kernel相关内容

了解了file_operations的参数loff_t *石油换食品计划

我设计了简单的读取和写入字符缓冲区的设备驱动程序。然而,我的问题是关于file_operations结构两个函数读取和写入。我不忠实地明白什么参数loff_t *石油换食品计划确实是。我知道,无论是读取和写入的石油换食品计划*是文件偏移表示当前读/写文件的位置,但是我甚至不知道这意味着什么写或从设备文件读取/。操作 从我收集的,这是怎么了书面方式,并从我读设备是我创造出重新presents我的设 ..
发布时间:2016-08-19 16:12:21 服务器开发

为什么使用Linux内核codeD非标准C(GCC特定功能)?

Linux内核code使用“的声明-EX pression”和typeof运算扩展,使它只在GCC编译。 更多我想它,它越没有意义。 这违背了便携性和标准C的目的 (现在的linux内核code需要与支持GCC的扩展特定的编译器)。 是不是一个糟糕的设计选择,或在那里制作Linux内核code比与gcc特殊原因? 编辑:当我说这违背了便携性,我用它在不同的上下文中。我在想,由符合标准的C ..
发布时间:2016-08-19 16:06:55 服务器开发

调用导出的内核模块的功能

我在写一个API作为一个内核模块,提供设备驱动程序的各种功能。我在我的code.C 写了三个功能。然后我建立并加载模块,然后复制我的code.h 到<内核> /在include / linux 。在设备驱动程序,我有一个的#include< Linux的/我的code.h> 并呼吁这三项功能。但是,当我建立了驱动模块,我得到三个链接器警告说,那些函数是未定义 注: 的函数声明的 ..
发布时间:2016-08-19 15:55:20 C/C++

内核线程执行

我写了下面code创建内核线程: #包括LT&; Linux的/ init.h中> #包括LT&; Linux的/ - module.h中GT; #包括LT&;的Linux / kernel.h> #包括LT&; Linux的/ kthread.h> #包括LT&; Linux的/ sched.h中>结构的task_struct *任务; int数据; INT RET ..
发布时间:2016-08-19 15:43:13 C/C++

当你使用container_of宏?

我知道宏做什么。 在许多内核级codeS,它经常被用于遍历链接列表 我要找到其他有用的情况。结果 当你使用container_of或 CONTAINING_RECORD 宏碁结果 如果是宏非常有用吗? 解决方案 container_of ,可以忽略指向父结构来简化你的数据结构。 它链表实现中使用,使得该列表节点可以是任何结构的元件,任何人都可以找到与母体结构而不围绕一个明确的指针 ..
发布时间:2016-08-19 14:41:12 C/C++

jiffies的 - 如何计算秒过去了?

我有一块code,我想要计算秒的时候..虽然我得到一次一会儿的,我怎么能转换它在几秒钟? 这是我的内核code: 的#include< Linux的/ - module.h中GT; #包括LT&;的Linux / kernel.h> #包括LT&; Linux的/ jiffies.h> #包括LT&; Linux的/ timer.h> 无符号长JS,乙脑,四环素; ..
发布时间:2016-08-19 14:30:00 C/C++

的版本信息,在Linux内核.mod.c文件含义

在所有可加载的内核模块,当制作被赋予它会产生一个名为 modulename.mod.c 中除了 modulename.ko 。 继code摘录从 .mod.c 文件,其中包含一个 {数,函数} 对。 这个数字是什么意义?由编译器是如何产生这个数字? 静态常量结构modversion_info ____版本[] __用过的 __attribute __((节(“__版本”)))= { ..
发布时间:2016-08-19 13:59:56 服务器开发

拦截ELF加载Linux内核:FS /通过加载内核模块binfmt_elf.c文件

我是新内核编码,并在present我已经过修改一点点对,我需要看一些它的安全目的ELF文件时的自定义栏目标题并提取独特$从它命名为c $ C加密密钥为CPU解密修改ELF的内容。 在present上述逻辑已在 load_elf_binary 函数中实现的 FS / binfmt_elf.c 在内核源​​代码树中的文件,但它是只有约250 code修改的线,我需要重新编译整个内核,所以我期待通过实 ..
发布时间:2016-08-19 13:52:41 C/C++

什么是领导和Linux内核标识符尾随下划线的意思?

我把整个小约定运行像 __ __仁。 是 __ 在这种情况下所使用的内核开发人员或命名约定是它命名宏这样一个语法具体的原因? 有整个code许多这样的例子。 例如某些函数和变量开始与 _ 甚至 __ 。 有没有具体的原因? 这似乎pretty广泛使用,我只是需要一些澄清,这些东西是否有语法的目的还是纯粹的命名约定。 此外,我看到很多的用户声明类型,比如将uid_t。同样我想这是一种命名 ..
发布时间:2016-08-19 13:43:03 服务器开发

存储阵列结构在内核空间,Linux的

我相信我可能过度思考这个问题有点...我已经得到了位于我的文件系统,我在开机分析和结果存入结构数组的文本文件。我需要复制从用户空间到内核空间(调用copy_from_user)此数组,并且必须有这数据通过随时内核访问。在内核空间中的数据将需要由Sockets.c文件进行访问。是否有存储内核空间中的数组一个特殊的地方,或者我可以简单地添加一个参考Sockets.c数组?我的C是有点生疏... 感谢 ..
发布时间:2016-08-19 00:48:38 服务器开发

如何拦截Linux的信号? (C语言)

我需要从任何二进制拦截和跟踪信号,诸如strace确实是在linux下。 我不需要像真正的strace的一个如此冗长的输出。 我只是想知道它是如何工作的,我怎么可以拦截信号,我怎么可以跟踪它们。 在此先感谢:) 解决方案 strace的使用 ptrace的() 系统调用追踪,这也让您能够拦截(也可能是操纵)发送到该进程的信号。 下面是一个小例子: 的#include< SY ..
发布时间:2016-08-19 00:29:43 服务器开发

我如何在内核级别使用该目录中的文件描述符打开一个目录?

我工作的一个项目,我必须打开一个目录,并在内核级别读取里面的文件/目录。基本上,我试图找出如何 LS 是在内核级别实现的。 现在我已经想通了如何获得使用目录中的文件描述符 SYS_OPEN()和 O_DIRECTORY标志,但我不知道如何阅读,我收到了FD。如果任何人有任何提示或其他建议我最好的AP preciate它。 (请记住,这已经在内核级别上进行)。 编辑:对于一个长话短说,因为我实现 ..
发布时间:2016-08-19 00:18:00 C/C++

编译我自己的内核(而不是从Linux内核源代码)

我下面从内核教程这里 有我的编译文件的问题IM。 我碰到下面的错误,当我试图编译: 的main.c:8:错误:为size_t'之前的预期声明说明符或'...' main.c中:8:错误:冲突的类型'的memcpy“ ./include/system.h:5:一张字条:“的memcpy'的previous声明在这里 main.c中:在功能“的memcpy': 的main.c:12:错误:'算' ..
发布时间:2016-08-18 23:37:27 服务器开发

如何math.h中包含的#include<&math.h中GT;内核源文件?

我想包括我的Linux内核模块math.h中。如果我使用, 的#include“/usr/include/math.h” 这给我载文错误:错误:features.h:没有这样的文件或目录 错误:比特/ huge_val.h:没有这样的文件或目录 错误:比特/ mathdef.h:没有这样的文件或目录 错误:比特/ mathcalls.h:没有这样的文件或目录 这是为什么? 解决方案 ..
发布时间:2016-08-18 23:32:50 C/C++

什么样的循环是(;;)?

发现在托沃兹/ Linux的2.6.git - >内核/ mutex.c线171 我试图找到它在谷歌和这样无济于事。 这是什么为(;;)指示? 解决方案 对于本(;;)是一个无限循环的情况类似,而(1)大多数已经提到。你会更经常地看到这一点,在内核互斥codeS,或如互斥等问题哲学家就餐。直到互斥变量被设置为一个特定的值,使得第二工艺获得对资源的访问,所述第二过程不断循环,也称为忙等待 ..
发布时间:2016-08-18 23:15:39 C/C++

任何办法从用户空间的Linux发送到SD卡的命令?

我有一个Debian的Linux 7.0 3.2嵌入式ARM TI AM335x系统。这是我们开发了定制电路板,但SD卡部分至少是一样的开发板。有一些供应商特定SD卡的命令,我想发出的卡,即采用阅读一些CMD56 SMART数据。 有没有办法将命令发送到SD卡控制器,并读取用户空间的反应? 解决方案 您驱动程序是 ..
发布时间:2016-08-18 23:09:21 服务器开发

在Linux驱动程序文件结构

目前我正在学习如何编写Linux设备驱动程序和我有麻烦理解“结构文件”。我现在用的书Linux设备驱动程序第三版来帮助我。 这是我的理解。 一个。 结构文件再presents打开的文件,因此,当打开被称为设备驱动程序模块,内核将创建包括与设备驱动程序一切结构文件。 乙。如果你想通过周围的设备驱动程序,然后一个人的这个实例的指针传递给特定的结构文件这是由内核开放后创建() ℃。 文件 - > ..
发布时间:2016-08-18 22:29:03 服务器开发

另外一个新的网络协议的Linux内核

我知道在Linux内核中,我们可以在传输层,类似于TCP,UDP等添加我们自己的协议。 是否有任何挂钩注册一个新的协议,在网络层,类似于IP,ARP,这可以在数据包传输到应用程序以及如何在Linux内核中添加这个协议? 解决方案 要处理来自用户空间通信您的协议,与内核注册协议的套接字API 。这使您可以创建用户空间的一个正常的插座。 看一看蓝牙/ RFCOM套接字实现相关的 code样 ..
发布时间:2016-08-18 22:15:28 服务器开发

覆盖功能在Linux内核模块

没有进入的的为什么的,我在寻找一个干净的(尽可能)的方式来取代内核函数和系统的细节从一个可加载模块调用。我最初的想法是写一些code重写某些功能,(也许如果可能的话,的呼叫的功能),它会使用原有的功能,然后加上我自己的一些$ C $的C。最关键的是,我写函数必须有原函数的名称,因此其他code,在试图访问它,将访问我的做法。 我可以很容易(相对)为此直接在只需扔我的code到相应的功能内核,但我 ..
发布时间:2016-08-18 22:08:34 服务器开发