全部博文(489)
分类:
2012-05-21 21:37:24
目前重印工作已经结束,第2次印刷的改动主要是:
1. 作者介绍部分:第二段仅保留“目前任职于AMD上海研发中心,主要从事Linux显卡驱动等领域的研发工作”。
2. 推荐序部分:
"Deep Understanding Linux Kernel"应为"Understanding the Linux Kernel"
3. 前言部分:
“林雨堂”应为“林语堂”
最后的致谢部分另加一小段如下:
“在本书首印后,感谢AMD的Annie Feng、ChinaUnix网友wait_rabbit及A10 Networks公司 高峰(CU ID: GFree_Wind)对本书重印的勘误工作提供的帮助!”
4. P4: “(如果section不占用内存空间,该值为0)”改为“(如果section不占用内存空间,加载后实际地址为0)”
5.
P33: "static int
__param_perm_check_dolphin __attribute__((unused)) =
\"应为:
“static int __param_perm_check_dolphin __attribute__((unused))
= \
BUILD_BUG_ON_ZERO((perm) < 0 || (perm) > 0777 || ((perm)
& 2)) \
+ BUILD_BUG_ON_ZERO(sizeof(""prefix) >
MAX_PARAM_PREFIX_LEN); \"
6. P82:“图2-10 开一个字符设备节点的功能流程”应为“图2-10 打开一个字符设备节点的功能流程”
7. P146:该页中出现的所有“ DECLARE_MUTEX”都应改为“DEFINE_SEMAPHORE”
8. P153:“如果sequence & 0 为0表明写入过程已经结束”中"sequence & 0"应该是"sequence & 1”
9. P192: “那么IRQ_EXIT_OFFSET=(HARDIRQ_OFFSET-1),意味着在HARDIRQ部分结束之后,内核已经启动可抢占性”, 最后一句应该为“内核已经可以启动可抢占性了”
10. P267, "static unsigned long eflag=1"应该改为“static volatile unsigned long eflag=1”
11. P267:
static void sigio_handler(int sigio)
{
printf(“Get the SIGIO signal, we exit the application!\n”);
eflag = 0;
}
在上述printf那行加个脚标,改成:
static void sigio_handler(int sigio)
{
printf(“Get the SIGIO signal, we exit the application!\n”);
eflag = 0;
}
12. P274:“通常Jiffies在Linux系统启动引导阶段被初始化为0”改为“通常Jiffies在Linux系统启动引导阶段被初始化为INITIAL_JIFFIES”
13. P275:“使用内核默认的值1000就足够了。事实上CONFIG_HZ并未出现在内核的配置菜单选项中,而是就在内核源码根目录下的.config文件中。”改为“使用内核默认的值就足够了。如果想要修改该值,可以通过Processor type and features --> Timer frequency选项进行,目前的内核配置中提供了100、250、300和1000Hz四个值。”
14. P283:“schedule_timeout(jiffies + HZ)”应为“schedule_timeout(HZ)”
15. P515,“各层通过改变skb->data和skb->tail的值来获得当前层对应的协议数据首地址”改为“各层通过改变skb->data的值来获得当前层对应的协议数据首地址”
信号处理函数中调用printf可能会导致重入等问题,此处使用该函数仅简单地作为一个范例使用。