免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: Godbach
打印 上一主题 下一主题

[实践] 它山之石,可以攻玉--从内核中学到了什么(获奖名单已公布-2014-4-21) [复制链接]

论坛徽章:
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
21 [报告]
发表于 2014-03-13 09:27 |只看该作者
回复 19# 与天笑


看来收获不小,感谢分享。

   

论坛徽章:
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
22 [报告]
发表于 2014-03-13 09:28 |只看该作者
回复 20# qxhgd

多发帖,多参与论坛交流,共同进步。:wink:


   

论坛徽章:
0
23 [报告]
发表于 2014-03-13 14:55 |只看该作者
回复 13# Godbach


    我以我这2年来的实际工作经验,举几个学习内核来服务上层业务应用的例子吧,没办法一次贴完,可能比较断断续续,各位见谅:

1  公司自主研发的搜索引擎,有很多针对大文件(100G以上)的随机读; 并且现网很多局点都跑在ext3的老系统上,也没法劝说客户升级操作系统。
   后来研究发现,ext3的间接块机制使的大文件的随机读速度相对较慢(ext4不存在这个问题),而这个可以在某些特定条件下通过某种预加载机制克服掉。
   虽然不具备通用性,但是在某些情况下可以应急。

2  项目中有内存过高,无法释放的问题。研究过Linux的内存管理后,发现可以通过madvsie + MADV_DONTNEED方式将进程占用的内存强行释放
   但依然保留其虚拟地址空间。 其实tcmalloc及新版的glibc都可以这么干,但以前真心不知道还可以这么玩。于是知道原理后就坚定了方向,并且大胆采用之。

3  通过proc文件系统的代码,基本上搞明白了里面统计的信息到底是什么意思,这个很有帮助。像mongo使用mmap的具体情况,大量socket下到底占用多少内存?
    这些以前不明白的问题都可以得到解答。

4  在对vfs,通用块层,还有IO调度器深入学习之后,找到了一种方法,可以模拟程序的IO行为,这样就可以在不修改程序代码,甚至不需要准备数据的情况下进行IO优化。

还有种种种,但都是很零碎
   
   

评分

参与人数 1可用积分 +6 收起 理由
Godbach + 6 赞一个!

查看全部评分

论坛徽章:
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
24 [报告]
发表于 2014-03-14 09:42 |只看该作者
与驱动与内核目前主要看书为主,虽然以前自己移植过内核,做过几个简单的驱动。后来就没机会从事这方面的工作,目前还在从理论走向实践中。如果二年后换份工作如果还能做这方面的工作话,到时再参与分享吧。目前暂时先转向应用层开发! 先赞一个

论坛徽章:
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
25 [报告]
发表于 2014-03-14 09:46 |只看该作者
回复 24# ckf513728912

了解一些内核,对应用层开发很有帮助的。

   

论坛徽章:
7
CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:14:08CU大牛徽章
日期:2013-03-14 14:14:26CU大牛徽章
日期:2013-03-14 14:14:29CU十二周年纪念徽章
日期:2013-10-24 15:41:34
26 [报告]
发表于 2014-03-14 10:06 |只看该作者
1. 内核的哪些数据结构以及 API 被用到或者移植到了和内核没有直接关系的工作中
曾经玩过内核版本中的加密的数据。
2. 分享一下曾经解决了燃眉之急的某个内核新特性
一半都是做内核的移植和内核的加解密的相关内容。
3. 介绍一下个人曾经研究过的某个内核特性
内核的openssl相关的内容。

评分

参与人数 1可用积分 +6 收起 理由
Godbach + 6 感谢分享

查看全部评分

论坛徽章:
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
27 [报告]
发表于 2014-03-14 11:26 |只看该作者
回复 25# Godbach


    恩,帮助不少。由其是现在要写很多测试工具,应用层到底层,还有网络层。了解底层的一些东西,在老大面前也有一个比较好的理由解释。  先干二年应用层的吧,二年后看机缘了

论坛徽章:
15
射手座
日期:2014-02-26 13:45:082015年迎新春徽章
日期:2015-03-04 09:54:452015年辞旧岁徽章
日期:2015-03-03 16:54:15羊年新春福章
日期:2015-02-26 08:47:552015年亚洲杯之卡塔尔
日期:2015-02-03 08:33:45射手座
日期:2014-12-31 08:36:51水瓶座
日期:2014-06-04 08:33:52天蝎座
日期:2014-05-14 14:30:41天秤座
日期:2014-04-21 08:37:08处女座
日期:2014-04-18 16:57:05戌狗
日期:2014-04-04 12:21:33技术图书徽章
日期:2014-03-25 09:00:29
28 [报告]
发表于 2014-03-14 13:06 |只看该作者
不知道从何说起了~,来凑个热闹,内核大部分模块基本都接触过,知道架构和原理,但研究深度不够,深入研究的机会较少
经常遇到些应用或系统调优的问题,知道底层OS原理后,对于把握方向和理清思路是很有帮助的。
内核开发少,应用开发基本么有,数据结构基本用不上。
技术支持工作多,使用内核调测方面的特性较多,记得nmi_watchdog帮我们解决了几个关键的问题、systemtap帮我们定位了不少问题、sysrq时常用到、perf、opfrofile、crash工具、虚拟化调测相关的东东、网卡多队列解决网络性能瓶颈等等
内核其他组件时常也要按需研究,另外,有关RAS特性、xen、kvm。。。,都是需要的掌握学习的,Linux的内容实在太多,一个脑袋搞不定啊~~

评分

参与人数 1可用积分 +6 收起 理由
Godbach + 6 赞一个!

查看全部评分

论坛徽章:
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
29 [报告]
发表于 2014-03-14 13:28 |只看该作者
本帖最后由 Godbach 于 2014-03-14 13:28 编辑

回复 28# humjb_1983


看来也研究了不少嘛

   

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
30 [报告]
发表于 2014-03-14 14:18 |只看该作者
  怎么觉得很多人动不动就说要找个内核开发的工作?内核到底有多少东西需要外面的公司来开发呢?
  大部分都已经稳定和够用了。公司最多做的就是驱动吧,偶尔有一些移植调优。

  学内核相关的知识我觉得不要老想着找个工作能去开发内核,可能有少量实验性质的工作会让你去研究开发。
  但是商业公司一般以应用为主,据我所知,好多IC公司里连驱动的框架和模块都大部分可以重用。连做驱动都不必写太多代码。

  所以我个人觉得,学内核一是理解系统运行原理,二是学习系统级程序的开发方法。这些知识在做应用时也都能用上。
就我个人的经验来说说。曾经作过几个驱动,由于资料一般比较老,新的内核都要靠自己去学习源代码,否则按老的方式写的驱动还无法编译。
另外以前做过压力测试文件系统的工具,这个针对Vxfs,所以自己研究VXFS代码的时候,内核的基础也帮了很大的忙。
至于其他的应用上做线程,并行的话,有内核相关的基础也会容易一些。

  最重要的一点就是,学好内核去面试的时候很有优势。即使那些工作并不需要这些知识,能忽悠两句也能加分的。

评分

参与人数 1可用积分 +6 收起 理由
Godbach + 6 赞一个!

查看全部评分

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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP