Chinaunix首页 | 论坛 | 博客
  • 博客访问: 480926
  • 博文数量: 76
  • 博客积分: 5196
  • 博客等级: 大校
  • 技术积分: 1414
  • 用 户 组: 普通用户
  • 注册时间: 2007-10-10 18:43
个人简介

转了个圈,又回来了

文章分类

全部博文(76)

文章存档

2013年(1)

2011年(8)

2010年(9)

2009年(22)

2008年(36)

我的朋友

分类: LINUX

2010-06-03 15:02:37

1.      内核栈是非常小的,而且是被内核空间调用链共享的。因此尽量在内核中采用动态分配变量。内核态的堆是很大的,可以将整个系统空闲内存都视为内核堆。

2.      内核代码是不做浮点运算的。

3.      内核态下的同步与互斥问题是非常重要的。

4.      内核API函数中以双下划线(__)开始的函数是底层接口组件,一般不要使用。

 

 

内核符号表:表中包含了全局内核项的地址 -- 函数和变量。模块输出的符号将成为内核符号表的一部分,在别的模块中要使用这些函数或者变量之前声明为extern符号就可以了。

 

内核不能连接使用标准C库的函数,只能调用内核符号表中的实现了的函数,还好大部分C库函数在内核中都已经得到了实现。

 

内联函数:如果一个函数反复被调用,可以将这个函数声明为一个内联函数,函数会在它所调用的位置上展开,这么做可以消除函数调用和返回所带来的开销。编译器会把调用函数和展开的内联函数的代码一起优化。因为编译器会检查内联函数的安全性,所以优先使用内联函数而不是复杂的宏定义。还有内联函数定义的时候需要用static作为关键字。

阅读(1371) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~