kernel-module相关内容

在内核中的地址

我有,当我设在内核中的地址的问题。我插入一个hello模块中的内核,在这个模块中,我把这些东西: 字符的myString [] =“这是我的地址”; printk的(“&所述1为卤素; MyString的地址是%P”,virt_to_phys(了mystring)); 我想我可以得到MyString的物理地址,但我发现,在系统日志,它的打印地址是0x38dd0000。然而,我甩存储器,发现真 ..
发布时间:2016-08-21 20:26:20 服务器开发

使用Linux的netfilter从结构iphdr *转换的源IP地址,等效字符串

我希望将源和放大器转换;使用网络过滤器为char *捕获数据包的目的地IP地址。 在我的netfilter钩子函数,我有: sock_buff = SKB; //钩子函数的参数2// IP_HEADER是结构iphdr * IP_HEADER =(结构iphdr *)skb_network_header(sock_buff);//现在怎么ip_header-&GT转换; SADDR和放大器; ..
发布时间:2016-08-21 19:59:29 服务器开发

什么是内核线程?

我只是开始设备驱动程序的编码和新线程,通过许多文件了用于获取有关线程的想法。我还是有些怀疑。 什么是内核线程? 从用户线程?的区别 什么是两个线程之间的关系? 如何实现内核线程? 我在哪里可以看到执行的输出? 谁能帮我? 谢谢。 解决方案 一个内核线程仅在内核模式下运行的核心任务;它通常没有被叉()或的clone()系统调用创建。一个例子是 kworker 或 ksw ..
发布时间:2016-08-19 16:20:51 C/C++

Linux内核和用户空间程序之间的通信

我目前正在写一个Linux内核模块,并实现了与用户空间程序的通信问题。 这个内核模块需要接收由用户空间程序发出的任务,完成后结果发送回用户空间程序。用户空间程序应该同时内核模块做的工作被阻止。 我觉得内核用户空间IPC或Unix套接字是甜的,但我没有运气由谷歌找到一个例子。 目前我的丑陋的解决方案是导出 chardev 键,让用户空间程序写入请求的设备文件,并从中读取结果。但是我只能发出每一 ..
发布时间:2016-08-19 16:03:50 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++

拦截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++

GCC返回优化布置

我想知道,如果GCC可以优化code像 INT美孚(参数){ 如果(is_true){ do_smth; N = call_func(参数); do_smth; 返回N; } 其他{ 返回call_func(参数); } } 所以,如果我在else分支call_func的电话很会 ..
发布时间:2016-08-19 00:16:39 服务器开发

KVM:模块验证失败:签名和/或所需的关键缺失 - 污点内核

我用的Ubuntu LTS 14.04 和内核版本 3.13.11.4 。 我试图加载补丁的KVM模块 KVM 和 KVM-英特尔和我得到的以下错误 KVM:模块验证失败:签名和/或所需的关键缺失 - 污点内核 和 KVM:模块有坏污点,没有创造跟踪事件。 所使用的源是创建,我目前正在运行的形象同出一源。 我已经检查的符号,并确保该错误不是由不包括 EXPORT_SYMBOL ..
发布时间:2016-08-18 23:50:11 服务器开发

如何Linux内核模块可以从C code装?

我必须同时具有两个外部内核模块和用户空间守护程序的应用程序。我想从守护程序code,C语言编写的,在启动时加载的模块,并卸载​​它们清洁退出。我可以在一个更清洁的方式加载它们比做系统(“modprobe的模块”); ,并使用相应的卸载它们 rmmod的? 解决方案 insmod的/ rmmod的使用功能的init_module 和 delete_module 来做到这一点,这也有一个人为的 ..
发布时间:2016-08-18 22:29:12 服务器开发

我可以更换一个模块一个Linux内核的功能?

林进入内核的工作有点我的暑假研究。我们正在寻找进行修改的TCP,在具体RTT计算。我想这样做的是取代在tcp_input.c的功能之一的决议,通过动态加载的内核模块提供的功能。我认为这将改善,我们可以开发和销售的修改步伐。 我感兴趣的是被声明为静态的,但功能我已经重新编译的功能非静态和EXPORT_SYMBOL出口内核。这意味着功能是现在到了内核的其它模块/地区进行访问。我已经通过“执行cat ..
发布时间:2016-08-18 22:06:36 服务器开发

如何获得在Linux内核空间当前小时(一天中的时间)

我正在写一个内核模块检查,看看是否该时间是两个指定小时,并禁止输入,如果它是。这与我想确保我早睡做。 (我知道我还可以使用任意数量的不同的技术,包括cron的等等,但我想学内核编程...) 作为第一个版本,所以我检查,如果当前的小时的开始和结束,这是通过参数模块设置之间。 所以我的问题是:我如何获得当前的小时?我在标准库没有进入通常的计时功能,因为我在内核空间。我猜,我应该使用此do_gett ..
发布时间:2016-08-18 13:11:30 服务器开发

如何追加从内核空间分组数据?

我想追加一些数据从内核空间的数据包。我有回声客户端和服务器。我在命令行中键入类似:./client“信息”,服务器只会回回来。服务器与./server运行。 现在,在客户端和服务器是在两个不同的机器(可以是虚拟机)。我写它运行在客户机上的内核模块。其工作,而该包就从机器中追加“12345”,“消息”后。我是presenting低于code。 / * *这是ibss_obsf_cat.c ..
发布时间:2016-08-18 13:03:29 服务器开发

我怎样才能得到一个内核模块内部的文件描述符的文件名?

我需要从一个给定的文件描述符获取文件的名字,我写了一个小的Linux内核模块中。我想在给出获取文件名从文件描述符使用C 的解决方案,但由于某些原因,它打印出垃圾值(使用的readlink 在的/ proc /自/ FD / NNN 作为在溶液中提到的)。我该怎么办呢? 解决方案 不要叫 SYS_readlink - 使用同样的方法PROCFS 一样。开始在的code proc_pid_re ..
发布时间:2016-08-17 22:27:29 服务器开发

编译外部模块,对正在运行的内核

我试图建立一个Ubuntu的服务器最新的Linux加密驱动程序。 Ubuntu的服务器已安装运行的内核,演员和头文件。但是,源$ C ​​$ C的加密模块从托伐的GitHub上(而不是Ubuntu的)来了。 我也从内核文档大厦外部模块工作。 我克隆了最新的内核: git的克隆--depth = 1 https://github.com/torvalds/linux.git 然后:光盘的 ..
发布时间:2016-08-16 13:38:21 服务器开发

在文件系统上编译出树的内核模块,针对任何内核源代码树

我试图编译对文件系统上的任何源代码树一个模块,但我有Makefile文件的麻烦。这是原来的Makefile我不得不对指定的内核: OBJ-M + =新mod.o所有: 使-C / lib / modules目录/ $(壳使用uname -r)/建造M = $(PWD)模块清洁: 使-C / lib / modules目录/ $(壳使用uname -r)/建造M ..
发布时间:2016-08-16 12:51:48 服务器开发

获取系统调用的参数与kretprobes后处理程序

我要与这些系统调用返回后LKM的sys_connect和sys_accept右追查。 我发现,Kprobes的可以给你访问寄存器时,探测系统调用返回,通过定义一个后处理程序。 我的问题是,我不知道如何从数据的系统调用的参数,我在后处理(即结构pt_regs) 后处理程序的定义那样: 无效post_handler(结构kprobe * P,结构pt_regs *暂存器,无符号长标志); ..
发布时间:2016-05-28 11:17:01 其他开发