![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
fyfhust
这个作者很懒,什么都没留下…
展开
-
makefile里PHONY的相关介绍
Phony TargetsPHONY 目标并非实际的文件名:只是在显式请求时执行命令的名字。有两种理由需要使用PHONY 目标:避免和同名文件冲突,改善性能。如果编写一个规则,并不产生目标文件,则其命令在每次make 该目标时都执行。例如: clean: rm *.o temp因为"rm"命令并不产生"clean"文件,则每次执行"make clean"的时候,该命令都会执行。如果目录转载 2009-08-19 16:08:00 · 1222 阅读 · 0 评论 -
关于Linux2.6中断的一些记录
<br />1. 中断向量和中断号(中断线)<br />中断向量是从cpu角度规定的中断信号划分;中断号是PIC引脚号<br />2. 几种异常<br />故障,陷阱,中止<br />3. 中断描述符表IDT<br />异常与中断发生时,都需要到IDT中查找相关信息,以找到对应的处理程序以及其他动作。需要注意的是,保护模式下发生权限提升时,中断穿越的是中断门,而异常穿越的是陷阱门。二者的区别是:当CPU穿越中断门时,是自动关中断的(清除eflags里的IF标志位[cli],在进入do_IRQ函数后会打开中断原创 2010-07-26 17:07:00 · 738 阅读 · 0 评论 -
vmware linux kernel driver config
基于linux_2.6.33内核$make defconfig$make menuconfig选择下面几项:Device Drivers SCSI device support ---> SCSI disk support SCSI generic support SCSI low-level drivers ---> [*] LSI Logic New Generation RAID Device Drivers Serial ATA and Paral原创 2010-08-06 15:28:00 · 1528 阅读 · 0 评论 -
gcc中设置特定代码块的优化级别
<br /><br />今天碰到一个gcc优化相关的问题,为了让一个页变成脏页(页表中dirty位被置上),需要执行下面这段代码:1uint32_t *page;2// ...3page[0] = page[0];<br />最后一行代码很有可能被gcc优化掉,因为这段代码看起来没有任何实际的作用。那么如何防止gcc对这段代码做优化呢?<br />设置gcc编译时优化级别为-O0肯定是不合适的,这样对程序性能影响会比较大。stackoverflow上的Dietrich Epp给出了一个强制类型转换的方案:1转载 2010-08-06 15:50:00 · 4599 阅读 · 0 评论 -
[zz]asmlinkage & regparm
<br /><br />发信人: feiy (积极、乐观、率性、自信), 信区: KernelTech<br />标 题: asmlinkage 其他 regparm attribute函数的gcc汇编浅析<br />发信站: BBS 水木清华站 (Mon Apr 26 02:56:12 2004), 转信<br />[asmlinkage 其他 regparm attribute函数的gcc汇编浅析]<br />asmlinkage是一类特殊的regparm attribute函数:<br />#def转载 2010-08-06 16:00:00 · 611 阅读 · 0 评论 -
系统初始化函数集(subsys_initcall)和初始化段应用
<br />前言:前段时间做一个项目需要设计一个动态库,并希望在加载库的同时自动执行一些初始化动作,于是联想到了linux内核众子系统的初始化,于是研究之,并在过这程中发现了初始化段的存在,利用初始化段实现了该功能。工作一年,笔记积累多了,慢慢变得杂乱无章,于是开博,一方面整理笔记,梳理知识,另一方面和大家交流,共同进步。<br />keyword:subsys_initcall, init, init_call1 系统初始化调用函数集分析(静态)<br />1.1 函数定义<br /> 在linux内核代转载 2010-08-10 11:21:00 · 554 阅读 · 0 评论 -
Linux内核态设置某片虚拟地址为只读的方法
下面这段代码主要用在虚拟地址映射比较固定的情况。该代码的作用主要是便于调试“内存被别的代码踩”,把这段被怀疑的内存设置为只读后,如果有别的程序写到该区域就会打印出Stack,很容易找出是谁踩了你的内存了,呵呵。。。int mmap_SetAddrRDONLY (unsigned long virt_addr, unsigned long size /* KB */){ int i; pte_t *p_pte; uint32 level; int ret = RT_OK; ASS原创 2010-09-20 10:20:00 · 2642 阅读 · 0 评论