http://www.cnblogs.com/yuuyuu/p/5119891.html ZC: 疑问,最后的 模块kernel_mod 调用 模块kernel_fun的函数fun,是成功的OK的。但是 模块kernel_mod 怎么就知道 它调用的就是 模块kernel_fun的fun函数?如果 ...
分类:
系统相关 时间:
2016-08-20 14:31:57
阅读次数:
285
(之前我在 CUSEC 网站发表了关于内核并不可怕的一篇文章,本文是后续。) 我曾经问别人如何开始内核编程的学习,他们基本上都说:1. 如果你不需要了解内核是如何为你工作的,你为何要尝试呢?2. 你应该订阅Linux内核邮件列表,然后努力去理解。3. 如果你不去编写针对Linux内核的代码,你就是在 ...
分类:
系统相关 时间:
2016-06-27 06:48:10
阅读次数:
319
从本章开始引入所有关于模块和内核编程的基本概念,并编写一个完整模块来实践这些基本的概念。3.1搭建测试环境由于所有测测试代码都是基于Ubuntu14.04.2Desktop的3.16.0-30-generic内核,所以最好是到Linux官方网站去下载一份该版本内核的源代码。另外,建议在虚拟机里面安装你..
分类:
系统相关 时间:
2016-06-20 19:05:04
阅读次数:
191
网址:http://blog.chinaunix.net/uid-24807808-id-3219820.html 在看linux源码的时候,经常会看到类似于下面的结构体赋值的代码: struct device my_dev = { .bus = &my_bus_type, .parent = &m ...
分类:
系统相关 时间:
2016-06-10 10:53:17
阅读次数:
235
这篇文章是《读薄「Linux 内核设计与实现」》系列文章的第一篇,本文主要讲了两个问题:内核编程的特点以及 GNU C 在内核开发中的特点。
0x00 内核编程特点
无 libc 库,不能访问标准 C 文件
使用 GNU C
无内存保护机制
慎用浮点数计算
注意同步和并发
可移植性考虑:保持字节顺序、64位对齐、不假定字长和页面长度
0x01 GNU C
内联函数:将函数展开至调用位置,省却函数调用...
分类:
系统相关 时间:
2016-06-07 06:39:02
阅读次数:
276
介绍了使用VMWare或者Hyper-V虚拟机搭建传统的Windows内核编程开发调试环境的方法,并利用VS2015新建了一个极其简单的NT式驱动程序HelloWorld,通过介绍HelloWorld的安装、调试和设置DbgPrint过滤等知识,概要展现一个内核开发调试环境的搭建和使用方式。...
学习了几个月的内核编程,现在对Windows驱动开发又了更加深入的认识,特别是对IRP的分层处理逻辑有了深入认识。
总结起来就几句话:
当irp下来的时候,你要根据实际情况,进行处理
1> 无处理,继续往下传
2> 处理之后 ,往下传
3> 处理之后, 往上传
4> 不做处理,直接丢弃
具体怎么理解,通过一个串口驱动过滤就可以深入理解。
一、串口过滤概念
串口过滤:平时我...
windows系统磁盘文件存储:分区格式:NTFS / FAT32GetSystemDirectory();//获取系统路径GetWindowsDirectory();//获取windows路径GetCurrentDirectory();//获取当前工作文件夹SetCurrentDirectory(...
分类:
编程语言 时间:
2016-01-11 13:32:48
阅读次数:
226
一.前言 我们一起从3个小例子来体验一下linux内核编程。如下:1.内核编程之hello world2.模块参数传递3.模块间函数调用二.准备工作 首先,在你的linux系统上面安装linux头文件,debian系列:1 $:sudo apt-...
分类:
系统相关 时间:
2016-01-11 01:27:10
阅读次数:
286
内核编程常常看起来像是黑魔法,而在亚瑟 C 克拉克的眼中,它八成就是了。Linux内核和它的用户空间是大不相同的:抛开漫不经心,你必须小心翼翼,因为你编程中的一个bug就会影响到整个系统,本文给大家介绍linux内核模块编写,需要的朋友可以参考下内核编程常常看起来像是黑魔法,而在亚瑟 C 克拉克的眼...
分类:
系统相关 时间:
2016-01-07 22:39:37
阅读次数:
321