kernel相关内容

Linux的USB编程

我是新来的Linux内核编程。我希望开发一个程序来读取像它的制造商名称,容量等我知道的描述及其属性的USB驱动器的信息。但我不明白如何枚举连接到系统的USB驱动器。我要寻找它启动内核和USB端口之间的连接功能。这怎么可能? 解决方案 您不需要的内核程序, - 实际上读取设备信息,你甚至不需要一个设备驱动程序 USB系统是较新的2.6内核不同,所以很多在线教程可能是过时的 - 但这里开始的 ..
发布时间:2016-08-23 10:13:29 服务器开发

同时编码一个内核可以进行的stdio使用......?

我需要建立一个操作系统,一个非常小的和基本的之一,实际上至少功能,codeD用C 也许,做一些内存管理,并具有至少一个文本编辑器和计算器中的崔操作系统,它只是将是一个如何使一个code,它拥有硬件全面和直接控制实验。 不过我会需要一个接口,这将需要像printf的输入/输出功能(安培;参数)和scanf(安培;参数)。现在我的基本问题是,我应该利用现有的标题或去从头开始实际的编码,和为何如此? ..
发布时间:2016-08-23 10:04:39 C/C++

从结构sk_buff中提取数据

我试图从结构的sk_buff 中提取数据,但没有收到我期待的输出。所讨论的帧是34字节;一个14字节的以太网首部周围的8个字节(实验协议)报头包 结构monitoring_hdr { U8版本; U8型; U8保留; U8 haddr_len; U32时钟; } __packed; 这个头之后,有两种,可变长度的硬件地址(其长度由 haddr_len 字 ..
发布时间:2016-08-22 16:25:45 服务器开发

Linux内核链表

我试图使用Linux内核链表实现,但我无法编译。我下面的这些来源正是没有结果( http://www.roman10.net / Linux的内核programminglinked列表/ 和 http://kernelnewbies.org/FAQ/LinkedLists) 该list.h内核宏LIST_HEAD_INIT如下: 的#define LIST_HEAD_INIT(名称){及(名称 ..
发布时间:2016-08-22 16:17:33 服务器开发

将参数传递给系统调用

我这样做没有任何参数的基本的helloWorld系统调用的例子,只是: INT的main() { 系统调用(__ NR_helloWorld); 返回0; } 但现在我试图找出如何实际参数传递给系统调用(即长)。什么是格式正好,我想: INT的main() { 长输入= 1; 长期结果=系统调用(__ NR_someSysCall,长期投入,长期); 返回0; ..
发布时间:2016-08-22 15:24:32 服务器开发

劫持SYS电话

我正在写一个内核模块,我需要劫持/包一些SYS电话。我蛮力迫使sys_call_table的地址,我使用CR0禁用/启用页面保护。到目前为止好(我会让公众对整个code一旦做了,所以如果有人想我可以更新这个问题)。 不管怎么说,我已经注意到,如果我劫持 __ NR_sys_read 我得到一个内核哎呀,当我卸载内核模块,和所有konsoles(KDE)崩溃。请注意,这不符合 __ NR_sys_ ..
发布时间:2016-08-22 15:08:16 服务器开发

从内核空间执行的ioctl

我正在写需要到另一台设备上执行的ioctl内核驱动程序。我知道这不是处理code的最佳方式,但是这仅仅是一个临时的解决办法现在。我从我的函数调用ioctl找回错误code -22(参数无效),但我看不出有什么可能是错误的论点。以下是code的相关部分。 的#define GPIO74“的/ dev / GPIO / 74”结构文件* gpio74FD; 。 。 。 gpio74FD ..
发布时间:2016-08-22 14:56:18 服务器开发

写的内核文件用地

我想写入从内核空间的日志文件。我可以创建,打开和放大器;关闭文件(/var/log/my_kern_module.log),但如果我尝试写一些东西进去,我的模块崩溃了...所以我知道读/写文件从内核空间是不好的,但我必须这样做此模块中。你有什么建议,以帮助我吗? THX 在这里您可以找到code谁是我的内核模块上执行写操作。它code运行到一个线程(KTHREAD) 的mutex_lock(安 ..
发布时间:2016-08-22 14:15:48 服务器开发

的sysconf(_SC_CLK_TCK)这是什么回报?

我是想了解各种的sysconf macros.I有如下编写的程序。 INT的main() { fprintf中(标准输出,“时钟数每秒滴答:%ld个\\ N”的sysconf(_SC_CLK_TCK)); 返回0; } 我总是得到的结果100.I我是主频为2.93GHz.What一个CPU上运行它数100恰恰意味着? 解决方案 这只是每秒滴答的时钟数,你的情况在内核配置 ..
发布时间:2016-08-21 22:43:38 服务器开发

省略号在数组初始化用C内核模块

我正在研究在GitHub上的https://github.com/umlaeute/v4l2loopback/blob/master/v4l2loopback.c并在这条线,这令我感到困惑就来了。这是一些令人难以置信的很酷的内核宏或GCC的功能,我不知道?什么是 = -1 吗? 静态INT video_nr [MAX_DEVICES] = {[0 ...(MAX_DEVICES-1)] = -1 ..
发布时间:2016-08-21 22:15:55 C/C++

可加载内核模块编程和系统调用拦截

假设我们要拦截退出系统调用和控制台上显示消息时的任何进程调用它。为了做到这一点,我们必须写我们自己的假退出系统调用,然后进行内核调用我们的假退出函数,而不是原来的出口通话。在我们的假退出通话结束的时候,我们可以调用原有的退出呼叫。为了做到这一点,我们必须操纵系统调用表数组(sys_call_table)找到。 与sys_call_table的阵列武装,我们可以操纵它使sys_exit切入点,我们 ..
发布时间:2016-08-21 22:06:55 服务器开发

Ç - Linux的 - 内核模块 - TCP报头

我试图创建Linux内核模块,这将检查传入数据包。此刻,我在提取数据包的TCP报头和阅读源和目的端口的过程 - >但是我得到不正确的值。我有钩子函数: unsigned int类型hook_func(unsigned int类型hooknum,结构的sk_buff * SKB, 常量结构的net_device *中, 常量结构的net_device *出来, INT(* okfn)(结构的s ..
发布时间:2016-08-21 21:58:08 C/C++

对于自己的内核键盘中断处理程序(C)

我写一个小OS作为学校的assigment的一部分,但是当涉及到​​获取键盘输入(preSS键 - >在屏幕上显示出来)我被困。我使用从osdev.org梗概教程(GCC交叉编译器,GRUB引导装载程序,LD链接),因为我是在保护模式下无法使用BIOS中断输入,这就是为什么我写我自己的中断处理程序( ?),但我不知道怎么做,即使我读了一些osdev文章和论坛讨论。非常类似的问题( http://f ..
发布时间:2016-08-21 21:55:44 C/C++

访问执行过程中.eh_frame数据

我试图从内部访问它 .eh_frame 正在运行的程序的部分内容(具体程序是Linux内核2.6.34.8)。在 .eh_frame 包含用于异常处理有用的数据,我想内核code内内部使用它。本节已经被写了 GCC ( readelf -a vmlinux.o 包含 .eh_frame ),问题是从code阅读。我是pretty确保ELF格式文档说 .eh_frame 为code执行期间访问。 ..
发布时间:2016-08-21 21:55:07 C/C++