高手问答----Linux内核专场第三十一期
2017年08月22日--2017年08月28日 分享到:

本期专家问答我们请来了《 奔跑吧 Linux内核 》一书作者 张天飞 来为大家解答相关问题。

本期问答内容
1.Linux内核内存管理
2.Linux内核进程调度,比如CFS, 大小核调度,HMP,EAS绿色节能调度器等
3.Linux内核调试技巧
4.Linux内核学习方法

作者简介:
张天飞
这里写图片描述

笔名“笨叔叔”。Linux内核爱好者,从事Linux内核和驱动开发十余年,在多家芯片公司从事过手机芯片底层软件开发和客户支持工作。

为了营造更好的问答氛围,我们不欢迎一切与主题无关的讨论、灌水。欢迎大家踊跃提问,张天飞老师会为大家解答问题,并在活动结束后抽取三位幸运用户赠送《 奔跑吧Linux 内核 》实体书一本
这里写图片描述

《奔跑吧Linux内核》讲述最新的Linux 4.x内核,以Linux 4.0为蓝本,讲述内存管理,进程调度,锁,中断管理以及内核调试技巧等内容。本书不是一本大而全的书,并没有覆盖内核的方方面面,追求小而美的叙述风格。本书的写作风格是“毛氏情景分析”+“笨氏吊打法”。

试读:点击

购买:点击

已结束
本期嘉宾 1503367323 752152 张天飞 笔名“笨叔叔”。Linux内核爱好者,从事Linux内核和驱动开发十余年,在多家芯片公司从事过手机芯片底层软件开发和客户支持工作。
2 qq 25973011 qq_25973011 2017.08.24 11:40提问
linux内核以及内核管理这块

linux内核内存管理能达到什么效果?在已存在系统上怎么进行一个内核优化

2 figo1802 figo1802 2017.08.24 14:29回答

从几十MB内存的嵌入式系统到以TB为单位的大型服务器, Linux内核都能把这些内存管理的很棒,这当中基于Linux内核出色的内存管理机制。这些
机制包括高效的伙伴系统,slub,虚拟内存管理,反向映射机制,hugepage,KSM等等,而且Linux内核社区也在不断的优化,从来没有停止过。

要进行系统优化,首先要定一个方向和target,然后找出gap在哪里。有很多开源工具可以使用,比如perf,systemtap,ftrace等。如果涉及到内核
比较核心的模块,可以先看看社区里有没有人正在做这方面的优化。

2 m0 37614819 m0_37614819 2017.08.23 15:30提问
API 获得 设备IMEI编号

根据网络路径获得手机(电脑)包括安卓、ios 等IMEI编号

2 figo1802 figo1802 2017.08.24 09:41回答

这个在android是framework层有API接口来获取IMEI编号,不是在kernel层做的。

2 feng1790291543 feng1790291543 2017.08.23 08:53提问
linux学习研究方面的问题

您的专著还没学习,想请教下,linux 如何深层次的研究和使用

2 figo1802 figo1802 2017.08.23 09:49回答

我觉得有如下几点:
1. 要有一颗热情的心和对Linux充满了兴趣和好奇心。如果想在学习内核可以赚大钱,那真不必了,因为连Linux校长linus同志都没发大财。虽然这几年Linux内核的热情被云计算、AI、自动驾驶等新兴热点超越了,可是Linux内核作为基础设施未来几年还是很难被替代的,无论云计算、AI、自动驾驶还是ARM服务器等等,这些应用场景大部分还是运行在Linux内核之上,因此学习和掌握Linux内核还是必不可少的一门手艺。Linux内核像股市中的白马股和蓝筹股,虽然不在是被爆炒的热点,但依然星光璀璨。可以读读Linus同志的自传《Just for fun》。
2. 要有实际动手的机会。如果公司里有实际的Linux驱动或者内核项目,那是很好的锻炼机会。如果没有,那可以自己创造一个。比如可以按照《奔跑吧Linux内核》第6章的实验内容,采用Qemu+gdb+eclipse+O0调试方法来对感兴趣的内核模块进行单步调试,这样可以加深对内核代码的理解。另外也可以参与一些其他的开源项目,github上有不少很不错的内核开源项目
3. “笨氏吊打法”即要带着问题去看内核代码。这些问题可以是自己工作上遇到的问题,也可以是自己阅读代码中产生的疑问,总之你有疑问就不要放过,被客户吊打的问题更不能让它轻易溜走。内核代码变得越来越庞大,不带着好奇心和问题去看代码很容易在代码中迷失了方向。这也是《奔跑吧Linux内核》推崇的做法。拿mmap来说,相信很多驱动开发者或者应用开发者都用过这个API,可是有没有想过mmap是怎么实现的?使用mmap需要注意哪些方面?如果用户程序采用只读的方式来mmap文件内容到用户空间然后往这段进程地址空间写入,会发生什么情况?再比如get_user_page()这个函数,有不少驱动程序使用了它,你有没有想过它是如何实现,又是如何pin住物理页面的?
4. 参与内核社区开发。在这一点上,我给自己打分的话一定是0分。我自己没有参与过内核社区的开发,也没有一个patch,虽然定阅了Linux-mm的mailist,可是真的没有时间很认真的参与讨论。希望读者朋友们如果有时间和精力可以订阅自己感兴趣的mailist,尽可能的参与社区的讨论,这样对自己的提高是显著的。能参与开源社区的开发固然是好事,如果你是做产品研发的部门,没有时间和精力参与到社区里,其实也不用伤心,很多Linux专家也不在社区里混。参与一款好产品的研发也是一件很了不起的事情,因为好产品不仅仅是开源技术,还涉及好多方面。

总之一句话,带着问题去看内核代码,然后撸起袖子动手实践吧,这也是《奔跑吧Linux内核》给大家推荐的做法。

feng1790291543
feng1790291543 get
3 个月之前 回复
共6条数据 首页 2