- 博客(9)
- 资源 (56)
- 收藏
- 关注
原创 在linux内核中读写文件
1. 序曲在用户态,读写文件可以通过read和write这两个系统调用来完成(C库函数实际上是对系统调用的封装)。 但是,在内核态没有这样的系统调用,我们又该如何读写文件呢?阅读linux内核源码,可以知道陷入内核执行的是实际执行的是sys_read和sys_write这两个函数,但是这两个函数没有使用EXPORT_SYMBOL导出,也就是说其他模块不能使用。在fs/open.c中系统
2012-11-17 17:38:10 23723 6
原创 Linux内核中读写文件数据的方法
Linux内核中读写文件数据的方法 有时候需要在Linuxkernel--大多是在需要调试的驱动程序--中读写文件数据。在kernel中操作文件没有标准库可用,需要利用kernel的一些函数,这些函数主要有: filp_open() filp_close(), vfs_read()vfs_write(),set_fs(),get_fs()等,这些函数在linux/fs.h和asm/u
2012-11-17 15:32:07 11810
转载 设备文件系统剖析与使用 udev mdev devfs
一、什么是Linux设备文件系统 首先我们不看定义,定义总是太抽象很难理解,我们先看现象。当我们往开发板上移植了一个新的文件系统之后(假如各种设备驱动也移植好了),启动开发板,我们用串口工具进入开发板,查看系统/dev目录,往往里面没有或者就只有null、console等几个系统必须的设备文件在这儿外,没有任何设备文件了。那我们移植好的各种设备驱动的设备文件怎么没有啊?如果要使用这些
2012-11-15 14:06:54 2163
转载 Linux 设备模型浅析之 uevent 篇
Linux 设备模型浅析之 uevent 篇本文属本人原创,欢迎转载,转载请注明出处。由于个人的见识和能力有限,不可能面面俱到,也可能存在谬误,敬请网友指出,本人的邮箱是 yzq.seen@gmail.com,博客是http://zhiqiang0071.cublog.cn。Linux 设备模型,仅仅看理论介绍,比如 LDD3 的第十四章,会感觉太抽象不易理解,而通过阅读内核代
2012-11-15 13:27:15 4086
转载 Udev 内核机制(kobject_uevent) 性能优化
Udev内核机制(kobject_uevent)性能优化前言这两天遇到一些udev 的问题, 顺便阅读了一下文档(见参考文档), 基本了解了 udev的机制。 嵌入式系统性能很重要,于是对内核这一块进行了性能方面的研究。内核大概20多处会调用了kobject_uevent函数发送KOBJ_ADD / KOBJ_REMOVE等事件。其中我们最关
2012-11-15 11:38:03 1460
原创 lib\kobject.c文件分析
本文件的函数列表: char *kobject_get_path(struct kobject *kobj, gfp_t gfp_mask)获取指定kobject的完整路径名 void kobject_init(struct kobject * kobj)初始化kobj(引用为1,链表为空,设置kset宿主) int kobject_add(struct kobje
2012-11-14 19:16:13 1294
原创 kobject之kobject_uevent.c文件分析
struct kset_uevent_ops { int (*filter)(struct kset *kset, struct kobject *kobj); //过滤函数,kset中的kobj是否需要处理 const char *(*name)(struct kset *kset, struc
2012-11-14 19:14:45 1230
转载 Lnux2.6内核udev机制(基于2.6.26
Lnux2.6内核udev机制(基于2.6.26)作者:guolele1990 2011年1月12日 最近在研究输入子系统时关于应用层与handler层时有点迷惑,查找了很多资料,发现是设备节点问题,于是看起udev(嵌入式中的是mdev)机制,下面是这个机制的分析。首先我们知道
2012-11-14 19:11:34 942
原创 内核定时器 struct timer_list
定时器,有时也称为动态定时器或内核定时器,是管理内核时间的基础。内核经常要推后执行某些代码,比如下半部机制就是为了将工作推后执行。我们需要一种工具,使工作能够在指定时间点上执行,正好在希望的时间点上,内核定时器正是这样一种工具。定时器使用简单,只须执行一些初始化工作,设置一个超时时间,指定超时发生后执行的函数,然后激活定时器就可以了。注意,定时器并不周期运行,它在超时后就自行销毁,这就是这
2012-11-14 14:32:48 1373
Android核心分析
2011-12-25
佛山网通EPON的FTTH工程方案设计
2011-12-25
ARM---Cortex-A8处理器
2022-09-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人