第143页 第3-7章
- 章节名:第3-7章
- 页码:第143页
本来打算读完第二部分,再整理笔记。今晚上终于把整个第二部分串起来了,虽然还剩第八章没读完,趁着思路清晰,先记录一部分吧。
如果说第一部分基础知识有点像字典,内容有点无聊的话,那么从第二部分开始,作者开始展现自己讲解能力。仅仅通过文字,就有一种在课堂上听老师讲解的感觉,逻辑清晰,循序渐进,每一部分都先总后分,实在是太贴心了~~
整个第二部分讲的是,网络设备如何初始化,下边就按照作者的思路,整理一下整个第二部分的脉络:
第三章 用户空间与内核的接口
第一部分的小尾巴,总共讲了两个东西,xxxxfs 和 ioctl ,字典什么的,跳过吧
这一章的翻译,出现了handler 被翻译成 例程,之前看过routine 整个词语也被翻译成例程。而且这个例程貌似跟进程、线程什么的没有关系。查了一下,大概是这个意思:系统对外提供功能接口的集合。所以例程指的是一组方法。这么理解的话,不管是叫handle 还是routine 就都好理解了
第四章 通知链
虽然是第二部分的章节,但是感觉放到第一部分也没什么问题。。。
=========第二部分【系统初始化】开始========
第五章 网络设备的初始化
第一部分讲到,网络设备是使用net_device 结构表示的,先不管这个对象是怎么来的,一个设备要想运行,就需要使用操作系统的资源,比如第二章中提到的net_device 结构中的irq。所以,设备运行的前提是,操作系统需要初始化irq。这个工作是在 本章提到的net_dev_init 方法中完成的。
执行完net_dev_init 以后,有了irq,接下来就需要把irq赋值给net_device 中的属性,由此引出第六章
本章笔记如下:
1.内核panic :对于windows,等同的概念叫做“蓝屏死机”,当发生内核panic的时候,控制台会输出提示:Kernel Painc: xxxxxx
2.irq_desc 实例向量也被称为irq_desc
英文原文是The vector of irq_desc instances is called irq_desc as well, 有点无语
3.p104 印刷错误 softirq 印成了softirg 感觉买到了盗版书
4.p108 提到的 /lib/modules/VERSION/modules.picmap 我在我的虚拟机里并没有找到,不是很懂原因
5.这一章译者的骚操作如下:
你可以通过倾卸(dumping) /proc/interrupts 的内容读取设备名称
根据你想要的配置有多奇异(fancy)而定
反正 如果只看 倾卸、奇异 这两个词语的话,我并不能猜出对应的英文是什么。。。
第六章 pci层和网络接口卡
上一章说到,执行完net_dev_init 以后,有了irq,接下来就需要把irq赋值给net_device 中的属性,本章介绍了驱动程序使用pci_driver 表示,编写驱动程序的时候,需要在代码中初始化这个对象,并使用pci_module_init 宏将驱动程序加载到内核。然后,内核会调用pci_driver中定义的 xxx_prob 方法,该方法会把irq赋值给net_device 中的属性。
结合第五章用户空间的辅助程序讲到的kmod 和 热插拔 会加载驱动程序。至此,如果内核中存在一堆net_device,那么,当管理员执行kmod 或者 某个热插拔的设备被插入的时候,驱动程序就会被加载,
xxx_prob 就会被调用。然后设备发出的中断可以被操作系统处理,到此,设备就可以使用了。
现在唯一的问题是,内核中的一堆net_device 是怎么来的,由此引出了我还没有读完的第八章
第七章 组件初始化的内核基础架构
这一章是对五六章节的补充,也是欢乐源泉,笔记如下:
1.可以查看 include/linux/init.h 下_setup 宏的定义,如何根据头文件init.h的代码是否为模块而变动?
其实137页就说了,用到是#ifdef 我还以为是什么奇技淫巧。。。
2.本章主要讲了两个东西,第一个就是引导期间的内核选项,举了一个例子,然后我就很想知道,这些内核选贤,写在哪个文件里?
129页的例子 最开始有个 LILO,结合第95页提到的 boot loader 如LILO 或者 GRUB
我的虚拟机用的是GRUB,在/etc/default/grub 文件中
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=VolGroup/lv_root rd.lvm.lv=VolGroup/lv_swap rhgb quiet"
另外,系统启动以后,可以在 /proc/cmdline 中查看内核引导选项
3.132页 宏卷标 这个翻译很迷
英文原文是 macro based tagging 感觉翻译成 基于宏的标记更直观,本人才疏学浅,是在难以理解译者怎么就翻译成宏卷标了。。。
下一节 优化宏卷标 optimized 感觉不如翻译成 宏卷标 最佳实践 之类的
4.之所以说这一章是快乐源泉,是因为138页的这句话:
内核必须确保net_dev_init执行之前,不会发生任何设备注册的“情事“。。。
这大概是既 上次 “忙绿程度”以来,最搞笑的印刷错误了~~
现在我满脑子都在想“情事“~~
上上谦对本书的所有笔记 · · · · · ·
-
第67页 第1-2章
读完《性能之巅》这种比较高阶的书籍,再阅读这种比较基础的书籍,就感觉比较轻松了,逻辑清...
-
第143页 第3-7章
-
第300页 第三部分
王老菊有一句口头禅:“我已经花了30分钟完全掌握这款游戏了”。看完第三部分,莫名其妙的想...
-
第413页 第四部分 桥接
初见第四部分,有一种玩黑魂遇到了古达的感觉。前三部分命名挺简单的,怎么忽然就开始看不懂...
说明 · · · · · ·
表示其中内容是对原文的摘抄