我之前看网络上的 《Linux那些事儿》,看的很是羡慕,也想跟着学习一下,但总看别人的文章,总觉得不够过瘾,确切来讲,由于基础比较差,很多还是迷迷糊糊的,后来改了一种学习方式,就是边看,边查找新内核对应的源码,并做笔记,但还是很多地方不明白,这次再采用新的想法再次学习,希望水平能提高一些。
这次我准备边修改内核边学习,哈哈,说修改还是太看得起自己的,不过多添加一些打印语句,总是可以的吧。
这次从sysfs学习开始,首先总结一些《Linux那些事儿》中关于sysfs的内容都有哪些。
总结起来主要为以下文件:
lib/kobject.c
/fs/kernfs目录
/fs/sysfs目录
先搞清楚需求,做好方案设计,才能心中有数。
当然在学习这些代码的时候,难免会有些头文件要到include目录或其他目录去看,这里不单独列出。
我们接下来便在这些文件中添加打印信息,看看内核是怎么玩的
我这里用的主机操作系统选择为deepin2015,国产系统,用起来相当不错。
arm的运行环境就选择qemu了,这样不需要重新买开发板,随时随地都能学习。
关于qemu运行linux请参考上一篇文章《qemu模拟A9/A15运行Linux4.2.3》,当然,我接下来分析的会是Linux4.4的内核,没办法,我是版本控,也许随着后续分析,版本还会提升。
注:
subsystem_init等subsystem函数在新版本内核中已不存在了