免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2003 | 回复: 3
打印 上一主题 下一主题

[进程管理] 《linux内核源代码情景分析》阅读 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-10-10 13:53 |只看该作者 |倒序浏览
再看《linux内核源代码情景分析》(毛德操,胡希明著上册)这本书,在252页,看到“就是说,如果内核能够在一个“异常表“中找到发生异常的指令所在的地址,并得到相应的”修复“地址fixup,就将CPU在异常返回后将要重新执行的地址替换成这个”修复”地址。为什么要这样做呢?因为在这种情况下内核不能为当前进程补上一个页面(那样的话name所指的字符串就变成空白了)。”这一小段时,实在是不能理解最后一句话(因为在这种情况下内核不能为当前进程补上一个页面(那样的话name所指的字符串就变成空白了))以及()中的内容。而且这也不好查啊,所以在此发帖希望看过这本书的大牛或是明白这的大牛们解释下,非常感谢!!!

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
2 [报告]
发表于 2013-10-10 16:24 |只看该作者
回复 1# 栏外人27
再看《linux内核源代码情景分析》(毛德操,胡希明著上册)这本书,在252页,看到“就是说,如果内核能够在一个“异常表“中找到发生异常的指令所在的地址,并得到相应的”修复“地址fixup,就将CPU在异常返回后将要重新执行的地址替换成这个”修复”地址。为什么要这样做呢?因为在这种情况下内核不能为当前进程补上一个页面(那样的话name所指的字符串就变成空白了)。”这一小段时,实在是不能理解最后一句话(因为在这种情况下内核不能为当前进程补上一个页面(那样的话name所指的字符串就变成空白了))以及()中的内容。而且这也不好查啊,所以在此发帖希望看过这本书的大牛或是明白这的大牛们解释下,非常感谢!!!


pagefault发生在内核态,并且地址不属于进程的线性空间。
在这种情况下,内核为了区分是由于用户态非法的参数还是内核的bug,通过异常表来解决。

if ((fixup = search_exception_table(regs->eip))! = 0) {
    regs->eip = fixup;
    return;
}

如果从异常表中查找到对应的指令,说明是用户态传入的非法的参数,重置eip为fixup地址,从而返回后执行修正代码,修正代码一般为发送SIGSEGV信号,终止当前进程等;

否则说明是内核的bug,那么就打印出oops信息了。。。

   

评分

参与人数 1可用积分 +2 收起 理由
Godbach + 2 很给力!

查看全部评分

论坛徽章:
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
3 [报告]
发表于 2013-10-10 17:13 |只看该作者
回复 2# 瀚海书香

目测瀚海兄已经通吃内核了。赞一个!


   

论坛徽章:
7
丑牛
日期:2013-10-18 14:43:21技术图书徽章
日期:2013-11-03 09:58:03辰龙
日期:2014-01-15 22:57:50午马
日期:2014-09-15 07:04:39丑牛
日期:2014-10-16 14:25:222015年亚洲杯之伊朗
日期:2015-03-16 10:24:352015亚冠之城南
日期:2015-05-31 09:52:32
4 [报告]
发表于 2013-10-10 17:31 |只看该作者
name是指前面的例子中的sethostname中的参数
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP