04 2012 档案

Geforce 8400显卡温度的获取
摘要:1 在安装完lm_sensors后,利用sensors命令显示结果如下:nouveau-pci-0100Adapter: PCI adaptertemp1: +80.0°C (high = +100.0°C, crit = +110.0°C)说明通过内核可以读出显卡温度,并且内核提供了用户态接口文件(位于/sys/devices/pci0000:00/0000:00:01.0/0000.01.00.0/temp1_input),而且pci总线上01:00.0对应显卡设备2 确定显卡温度信息文件所在的系统位置 系统监控信息都在/sys/class/hwmon目录下, 阅读全文

posted @ 2012-04-24 10:23 周健 阅读(1629) 评论(0) 推荐(0)

显卡地址与cpu虚存地址的映射
摘要:连续物理内存映射、非连续物理内存映射、总线地址、内存映射、I/O端口映射 阅读全文

posted @ 2012-04-23 21:45 周健 阅读(3358) 评论(0) 推荐(0)

intel core 2 duo温度读取
摘要:1 目的:实现intel core 2 duo cpu的温度检测2 分析:对于intel处理器,每个处理器核心有Digital Thermal Sensors(DTS 数字敏感传感器),该数字传感器的检测值不依赖于外围电路,仅仅取决于 cpu核心的热度,其取值存储于cpu上的一个特殊寄存器中,该寄存器称为Model Specific Register 0x19c(MSR),可以通过rdmsr指令读取,内核代码coretemp.c文件实现了该文件的读取,插入coretemp.ko模块后,可以通过/sys/devices/platform/coretemp.0/目录下的temp1_input、te 阅读全文

posted @ 2012-04-18 21:00 周健 阅读(1954) 评论(1) 推荐(1)

内核中likely和unlikely
摘要:最近在看内核代码时,在条件判断中出现了likely和unlike,比如在seq_read中有如下代码片段:1 if (err < 0)2 break;3 if (unlikely(err))4 m->count = 0;5 if (unlikely(!m->count)) {6 p = m->op->next(m, p, &pos);7 m->index = pos;8 continue;9 }那么其作用是什么?... 阅读全文

posted @ 2012-04-17 22:18 周健 阅读(1458) 评论(0) 推荐(0)

seq_file文件的内核读取过程
摘要:1 问题seq_file只是在普通的文件read中加入了内核缓冲的功能,从而实现顺序多次遍历,读取大数据量的简单接口。seq_file一般只提供只读接口,在使用seq_file操作时,主要靠下述四个操作来完成内核自定义缓冲区的遍历的输出操作,其中pos作为遍历的iterator,在seq_read函数中被多次使用,用以定位当前从内核自定义链表中读取的当前位置,当多次读取时,pos非常重要,且pos总是遵循从0,1,2...end+1遍历的次序,其即必须作为遍历内核自定义链表的下标,也可以作为返回内容的标识。但是我在使用中仅仅将其作为返回内容的标示,并没有将其作为遍历链表的下标,从而导致返回数据 阅读全文

posted @ 2012-04-16 19:27 周健 阅读(7143) 评论(2) 推荐(1)

关于vfsmount的理解
摘要:struct vfsmount {struct list_head mnt_hash;struct vfsmount *mnt_parent;/* fs we are mounted on */struct dentry *mnt_mountpoint;/* dentry of mountpoint */struct dentry *mnt_root;/* root of the mounted tree */struct super_block *mnt_sb;/* pointer to superblock */struct list_head mnt_mounts;/* list of 阅读全文

posted @ 2012-04-12 22:30 周健 阅读(4605) 评论(0) 推荐(0)

内核态实现各个磁盘分区可用内存
摘要:内核模块、磁盘分区列表、hd_struct、分区使用情况列表 阅读全文

posted @ 2012-04-12 13:17 周健 阅读(1011) 评论(0) 推荐(0)

Linux命令之declare - 声明shell变量(不知道没关系、知道了就更好的内建命令)
摘要:本文链接:http://codingstandards.iteye.com/blog/1150109 (转载请注明出处)用途说明declare命令是bash的一个内建命令,它可以用来声明shell变量,设置变量的属性(Declare variables and/or give them attributes)。该命令也可以写作typeset。虽然人们很少使用这个命令,如果知道了它的一些用法,就会发现这个命令还是挺有用的。常用参数格式:declare格式:typeset格式:declare -p格式:typeset -p显示所有变量的值。格式:declare -p var格式:typeset - 阅读全文

posted @ 2012-04-06 15:34 周健 阅读(1659) 评论(0) 推荐(0)

遍历内核所有的进程
摘要:我们知道linux系统中的初始话进程为init_task,内核在初始化后期以该构造进程为原型,创建了用户空间的进程树的根init,和内核空间线程树的根kthreadd,用pstree只能显示init树结构。那么linux内核中如何得到,系统中所有进程列表呢?1 按照进程task_struct中组成的血缘关系,来遍历这两个根,这种方式是树状遍历方式,也是最传统简单方式下面将init进程传进去后,即可遍历该进程下所有的子进程 159 static void getLeakingThreads(struct task_struct* root) 160 { 161 struct list_head. 阅读全文

posted @ 2012-04-04 20:36 周健 阅读(3778) 评论(1) 推荐(0)

proc_fs下进程信息形成原理、目录遍历方式、位图查找
摘要:我们知道在linux中,proc系统中对于每个进程都有一个进程相关的目录,里面描述了该进程各个方面详细的信息,本文探讨3个问题:1: /proc目录下每进程子目录的形成[动态遍历当前进程列表形成]2:每进程子目录下子目录/子文件的形成[静态数组]3:/proc/net/子目录下子目录、子文件形成[系统初始化时形成]内容:点击打开链接0 首先介绍proc_dir_entry的层次结构struct proc_dir_entry { unsignedint low_ino; unsignedshort namelen; constchar *name; mode_tmode;... 阅读全文

posted @ 2012-04-04 17:00 周健 阅读(1867) 评论(0) 推荐(0)

导航