免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 无风之谷

图书试读 《深入Linux设备驱动程序内核机制》(获奖名单已公布) [复制链接]

论坛徽章:
0
发表于 2012-03-02 10:46 |显示全部楼层
回复 32# MagicBoy2010


经MagicBoy2010 兄提醒,又翻了下书《Professional Linux Kernel Architecture》
参考:http://blog.chinaunix.net/space. ... o=blog&id=92384

把我自己理解的说一下,大家看看是否有出入。

spin_lock(及其变种)
        preempt_enable
                preempt_check_resched
                        preempt_schedule
                                add_preempt_count_notrace(PREEMPT_ACTIVE);
                                __schedule();
                                sub_preempt_count_notrace(PREEMPT_ACTIVE);

中断返回会调用到:
preempt_schedule_irq
        add_preempt_count(PREEMPT_ACTIVE);
        local_irq_enable();
        __schedule();
        local_irq_disable();
        sub_preempt_count(PREEMPT_ACTIVE);

可见中断返回或者自旋锁解锁调度__schedule()之前都需要给preempt_count加上PREEMPT_ACTIVE。

__schedule
        if (prev->state && !(preempt_count() & PREEMPT_ACTIVE)) {               
                        deactivate_task(rq, prev, DEQUEUE_SLEEP);                       
        }

当前进程非TASK_RUNNING(运行的话,当然无须移除),并且非PREEMPT_ACTIVE状态,才可以从运行队列移除。

论坛徽章:
0
发表于 2012-03-02 11:25 |显示全部楼层
回复 41# azfa123

其实这个话题牵涉面还是很广的,有空可以做个总结。。。主要是抢占方面的东西。等下有空仔细看一下你贴出来的东西。。。。


   

论坛徽章:
0
发表于 2012-03-02 11:39 |显示全部楼层
新手 ,路过顶一顶 暂时提不出问题,就只好灌个水了.见谅

论坛徽章:
0
发表于 2012-03-02 11:49 |显示全部楼层
有几个问题,想向MagicBoy2010请教一下:
1、诚如你所讲,《深入Linux设备驱动程序内核机制》"侧重在内核与驱动交互那块",如果希望能较好的理解书中所讨论的,对于内核需要具备什么程度的了解?

2、内核是个庞大而复杂的系统,内核学习指导书随便一拿出来就是砖头那么厚的一本,内核源码即使有很好的阅读工具也很容易让阅读者迷失在源码中。怎么去学习内核,怎么从内核中受益,怎么去验证自己所学的,一直是让我们这些初学者很纠结的问题。关于内核学习的方法,MagicBoy2010兄能给我们分享分享你的经验么?

===========================================
对内核总体框架的了解就足够,具体点,比如第三章内存分配,我不会讨论到分配物理页面的伙伴算法,slab的机制我只会提到它的总体思想,因为这本书主要是面对设备驱动程序员和那些做内核模块开发的同学,它不会用过多的篇幅去描述内核的。操作系统的一些概念我想大家都有,这就足够,因为第四章会讨论原语,讨论操作系统书上的理论如何在实际的OS代码中实现,有ARM和x86的汇编,但是读者并一定需要,因为我会解释它设计的思想以及为什么它能完成原语的功能。刚接触Linux的同学我的建议是暂时不要看,因为你买了我相信你会把它扔垃圾箱了。最佳的方式,你去找一本详细描写如何在Linux下写设备驱动程序的书,LDD不错,但是代码目前有点太古老了,读者自己要做一些更新,但是它提供的学习方法方式还是值得看看,然后再对照着这本书一起看。至于印度那位仁兄的《精通Linux设备驱动程序》我觉得价值不大,主要是在硬件接口层面,这个东西我一直坚持看data  sheet。技术是积累的,不是看书得来的。好的书是个map,它不会让你迷路。

内核的学习方面,如果实在没耐心深入研究处理器,那么就找一本内核overview的书,这个我就强烈推荐ULK了,它的骨架比较好,代码虽然有点成就,但是总体的思想还都在,而且以一个具体的处理器架构来讲。这样仔细读下来,大体上算是比较熟悉内核了,学些过程中遇到什么去看什么。从内核中受益,其实不只是内核,其他领域也一样,你熟悉了它的原理,你就会很自由,它在你的手掌上,你可以这样玩也可以那样玩。创新总是在熟悉的基础上才可能有。你仔细研读完ULK,期间一定要看代码。总之兴趣和好奇心最重要了,没兴趣的话建议不要看内核。我个人的观点,只供参考。


   

论坛徽章:
54
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
发表于 2012-03-02 13:24 |显示全部楼层
回复 33# MagicBoy2010


    论坛随便说。呵呵。但当你真的看到这样的简历时你就很担心的。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2012-03-02 15:05 |显示全部楼层
回复 40# tempname2
呵呵,是啊,不是还有个尾号是 3 的 id 吗,还有一个不带数字的 id。


   

论坛徽章:
2
CU十二周年纪念徽章
日期:2013-10-24 15:41:34处女座
日期:2013-12-27 22:22:41
发表于 2012-03-02 16:25 |显示全部楼层
回复 46# Godbach

不带数字的好像不是我。2这个可是大号啊,但总是享受马甲待遇。

   

论坛徽章:
13
巨蟹座
日期:2013-10-30 18:29:4115-16赛季CBA联赛之青岛
日期:2019-01-04 17:30:1015-16赛季CBA联赛之天津
日期:2016-03-08 10:30:1715-16赛季CBA联赛之天津
日期:2015-12-10 15:56:452015年亚洲杯之约旦
日期:2015-03-09 16:29:36双鱼座
日期:2014-11-27 17:17:20寅虎
日期:2014-11-18 13:55:12双子座
日期:2014-03-31 15:41:32狮子座
日期:2014-03-14 11:23:24狮子座
日期:2014-02-19 16:30:12午马
日期:2013-11-04 23:22:31卯兔
日期:2013-10-30 19:51:15
发表于 2012-03-02 23:44 |显示全部楼层
顶  学习中

论坛徽章:
1
拜羊年徽章
日期:2015-03-03 16:15:43
发表于 2012-03-03 10:24 |显示全部楼层
回复 5# MagicBoy2010
添油加醋了,哪有激动得泪流满面的?你怎么就说人家没有读overview?

   

论坛徽章:
0
发表于 2012-03-03 17:42 |显示全部楼层
添油加醋了,哪有激动得泪流满面的?你怎么就说人家没有读overview?
===================================

呵呵,5楼的文字明显是引申一个可能的现象嘛,你非要拿你个案说事


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会

【架构革新 高效可控】2020年12月21日-23日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP